回答:
cls
メソッドはクラスに属していることを意味しますが、自己はメソッドがクラスのインスタンスに関連していることを意味します。したがって、を持つメンバーcls
はクラス名によってアクセスされますが、自己を持つものはクラスのインスタンスによってアクセスされます...同じ概念ですようstatic member
とnon-static members
Javaでは、Javaの背景からしている場合。
static member
とnon-static members
、C ++の文脈でそれを理解
これは非常に良い質問ですが、質問ほど必要ではありません。「自己」と「cls」の使用方法には違いがありますが、同じように同じ場所にあります
def moon(self, moon_name):
self.MName = moon_name
#but here cls method its use is different
@classmethod
def moon(cls, moon_name):
instance = cls()
instance.MName = moon_name
これで両方がmoon関数であることがわかりますが、1つはクラス内で使用でき、他の関数名moonは任意のクラスで使用できます。
実用的なプログラミングアプローチの場合:
サークルクラスを設計する際、エリアのメソッドをclsとして使用します。これは、エリアを特定のクラスのサークルのみに限定したくないためです。