Loose-Info.com
Last Update 2025/10/18
TOP - 各種テスト - Python - クラス

概要

クラス定義
継承


クラス定義


sample.py
print("クラス定義\n"); class C1: x = "abc" class C2: def __init__(self, val): self.v = val def pr(self): print(f"v = {self.v}") c1 = C1 c2 = C2(1) print(dir(c1)) print(c1.x) print(dir(c2)) print(c2.v) c2.pr()

実行結果
$ python3 sample.py クラス定義 ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'x'] abc ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'pr', 'v'] 1 v = 1

継承


sample.py
def deldir(dr, deldr): # 重複する属性名を削除 ret = [] for x in dr: if x not in deldr: ret.append(x) return ret class C1: pass class C2(object): pass class C3(int): pass class C4(str): pass class C5(C4): pass print("継承元クラスとの属性リストの比較\n") print("C1 --- 継承元指定なし\n", deldir(dir(C1), dir(object)), "\n") print("C2 --- 継承元 : 基底クラスobject\n", deldir(dir(C2), dir(object)), "\n") print("C3 --- 継承元 : int\n", deldir(dir(C3), dir(int)), "\n") print("C4 --- 継承元 : str\n", deldir(dir(C4), dir(str)), "\n") print("C5 --- 継承元 : C4\n", deldir(dir(C5), dir(C4)), "\n")

実行結果
$ python3 sample.py 継承元クラスとの属性リストの比較 C1 --- 継承元指定なし ['__dict__', '__module__', '__weakref__'] C2 --- 継承元 : 基底クラスobject ['__dict__', '__module__', '__weakref__'] C3 --- 継承元 : int ['__dict__', '__module__'] C4 --- 継承元 : str ['__dict__', '__module__', '__weakref__'] C5 --- 継承元 : C4 []

実行環境

Python 3.12.11


コード例・出力内容中の表記

・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。