クラス属性およびメソッドの定義
クラスにバインドされた変数は
すべてクラス属性 です。クラス内で定義された関数は
すべてメソッド です。メソッドは、
クラスのインスタンス (慣習として self と呼びます) を第 1 引数として受け取ります。例えば、
クラス属性およびメソッドを定義するには、以下のコードを入力します。
class MyClass
attr1 = 10 #class attributes
attr2 = "hello"
def method1(self):
print MyClass.attr1 #reference the class attribute
def method2(self):
print MyClass.attr2 #reference the class attribute
def method3(self, text):
self.text = text #instance attribute
print text, self.text #print my argument and my attribute
method4 = method3 #make an alias for method3
クラスの内側では、
クラス属性に対するすべての参照をクラス名で修飾する必要があります (MyClass.attr1 など)。インスタンス属性に対する参照は、
すべて self 変数で修飾する必要があります (self.text など)。クラスの外側では、
クラス属性に対するすべての参照をクラス名で修飾するか (MyClass.attr1 など)、
クラスのインスタンスで修飾する (x をクラスのインスタンスとすると x.attr1 などとする) 必要があります。クラスの外側では、
インスタンス変数に対するすべての参照をクラスのインスタンスで修飾する必要があります (x.text など)。