重複の可能性:
Python メソッドに「self」引数を明示的に指定する必要があるのはなぜですか?
Python 'self' の説明
これは、私自身の啓蒙のためです。私はPythonを学んでおり、PythonでOOPに移行しました。私が見たクラスのメソッドの例はすべて、最初の引数として「自己」を持っています。これはすべての方法に当てはまりますか?それが本当なら、この引数が理解されただけで不要になるように python が書かれているのではないでしょうか? ありがとう。
重複の可能性:
Python メソッドに「self」引数を明示的に指定する必要があるのはなぜですか?
Python 'self' の説明
これは、私自身の啓蒙のためです。私はPythonを学んでおり、PythonでOOPに移行しました。私が見たクラスのメソッドの例はすべて、最初の引数として「自己」を持っています。これはすべての方法に当てはまりますか?それが本当なら、この引数が理解されただけで不要になるように python が書かれているのではないでしょうか? ありがとう。
にアクセスする必要のないメソッドが必要な場合は、次self
を使用しstaticmethod
ます。
class C(object):
def my_regular_method(self, foo, bar):
pass
@staticmethod
def my_static_method(foo, bar):
pass
c = C()
c.my_regular_method(1, 2)
c.my_static_method(1, 2)
クラスにアクセスしたいが、インスタンスにはアクセスしたくない場合は、次を使用しますclassmethod
。
class C(object):
@classmethod
def my_class_method(cls, foo, bar):
pass
c.my_class_method(1, 2)
静的メソッドは自己を必要とせず、クラスで動作します
ここで静的の良い説明を参照してください: Pythonの静的クラス変数