self
Python の単語の目的は何ですか?そのクラスから作成された特定のオブジェクトを参照していることは理解していますが、すべての関数にパラメーターとして明示的に追加する必要がある理由がわかりません。説明のために、Rubyでこれを行うことができます。
class myClass
def myFunc(name)
@name = name
end
end
私にはわかります。ただし、Pythonでは以下を含める必要がありますself
。
class myClass:
def myFunc(self, name):
self.name = name
誰もがこれを通して私を話すことができますか?それは私の(確かに限られた)経験で遭遇したものではありません。
@name
より直感的になりself.name
ますか?後者のIMOはより直感的です。
@foo
そしてself.foo
NOと同等に明示されている暗黙的な解像度が起こる必要はない(C ++で、例えば、インスタンスメンバーは、「暗黙」「明示的」名前空間を使用することなくアクセスすることができます)。唯一の違いは、Rubyには新しいセマンティック(@)が導入されているのに対し、Pythonでは導入されていないことです。新しいセマンティクスが回避された冗長性の量に値するかどうかは、純粋に主観的です。ただし、最近のほとんどの言語では、ここに概念を導入することを選択しています(たとえば、phpの$ this、JSのthis)。