7

重複の可能性:
Python メソッドに「self」引数を明示的に指定する必要があるのはなぜですか?
Python 'self' の説明

これは、私自身の啓蒙のためです。私はPythonを学んでおり、PythonでOOPに移行しました。私が見たクラスのメソッドの例はすべて、最初の引数として「自己」を持っています。これはすべての方法に当てはまりますか?それが本当なら、この引数が理解されただけで不要になるように python が書かれているのではないでしょうか? ありがとう。

4

2 に答える 2

20

にアクセスする必要のないメソッドが必要な場合は、次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)    
于 2013-01-14T22:23:43.103 に答える
3

静的メソッドは自己を必要とせず、クラスで動作します

ここで静的の良い説明を参照してください: Pythonの静的クラス変数

于 2013-01-14T22:22:17.220 に答える