最終更新:2021-09-13 (月) 09:14:22 (954d)
Python/クラス
https://docs.python.jp/3/tutorial/classes.html
定義
class クラス名(継承元クラス): "クラスの説明" #クラス定義 def メソッド名(self,引数1): メソッド定義 #呼び出し クラス名.メソッド名(引数1)
- 継承元クラスがないときはとりあえずobjectを指定
- 継承元クラスは複数指定することによって多重継承もできる
- メソッドの第一仮引数はselfを取る
- selfにはメソッドを呼び出したインスタンスが自動的に代入される
クラシッククラス
- 継承元クラスを指定しないクラス
- 後方互換性のために残されている
- インスタンスのデータ型はinstanceとなる
class クラス名: "クラスの説明" #クラス定義
インスタンス化
クラス名():
self
- Python ではインスタンスメソッドの呼び出しは第一引数に自分自身を渡す
- メソッドの最初の引数を self と呼びます。この名前付けは単なる慣習でしかありません。
- self という名前は、 Python では何ら特殊な意味を持ちません。とはいえ、この慣行に従わないと、コードは他の Python プログラマにとってやや読みにくいものとなります
属性
クラス属性
class クラス名(Object): name='hoge'
インスタンス属性
インスタンス名.属性名=値
- でいきなり代入できる
Python/クラス変数
クラス名.クラス変数
特殊な属性
- instance.__class__ - クラスインスタンスが属しているクラス
- class.__bases__ - クラスオブジェクトの基底クラスからなるタプル
- class.__name__ - クラスまたは型の名前
初期化メソッド (__init__)
class クラス名(Object): def __init__(self,引数1,引数2): #初期化 クラス名(引数1,引数2)
継承元クラスのメソッドを呼ぶ
- super(クラス,そのクラスのインスタンス)で親クラスへアクセスできる
class クラス名(親クラス): def hoge(self): super(クラス,self).hoge()