クラス属性にアクセスする場合、そのクラスメソッド内でクラス名Foo
またはself
を使用する場合の相違点は何ですか?ClassNameまたはselfでドット構文を使用する場合の違い
>>> class Foo(object):
... class_attribute = "Oh Hai"
... def bar(self):
... print(Foo.class_attribute)
... print(self.class_attribute)
...
>>> Foo().bar()
Oh Hai
Oh Hai
どちらも機能します。どちらの場合も、私はPythonがクラスのインスタンスを見て、それにバインドされたクラス属性を見つけられないので、クラス属性をチェックしてclass_attribute
を探します。
もう一方の方が効率的ですか?
コードの可読性は個人的な好みですか?私に見てClassName.class_attribute
以内に使用されているそのクラスは奇妙に見えます。
[Pythonでの静的なクラス変数]の重複の可能性があります(http://stackoverflow.com/questions/68645/static-class-variables-in-python) –
それは能力をカバーするもので、これは推論をカバーします。詐欺ではない。 –