62

だから私はPythonでプログラミングを始めたばかりで、「自己」の背後にあるすべての理由を理解していません. クラス内の異なるメソッド間でデータを渡すことができるように、グローバル変数のように使用されることを理解しています。同じクラスの別のメソッドを呼び出すときに、なぜそれを使用する必要があるのか​​ わかりません。私がすでにそのクラスにいる場合、なぜそれを言わなければならないのですか??

たとえば、次のような場合: なぜ self.thing() が必要なのですか?

class bla:
    def hello(self):
        self.thing()

    def thing(self):
        print "hello"
4

6 に答える 6

58

また、クラスでメソッドを作成できるstaticため、必要はありませんself。ただし、本当に必要な場合はこれを使用してください。

あなたのもの:

class bla:
    def hello(self):
        self.thing()

    def thing(self):
        print "hello"

静的版:

class bla:
    @staticmethod
    def hello():
        bla.thing()

    @staticmethod
    def thing():
        print "hello"
于 2013-09-08T04:38:18.623 に答える
2

私にとっては、self.foo() と self.bar がクラスで定義された関数とパラメーターを示し、他の場所で定義されているものではないスコープ定義者のようなものです。

于 2014-07-23T01:18:06.907 に答える