2

以下は私のコードの簡略版です:

TestClass.pyファイル:

class TestClass:

    def func1(self):
        pass

    def func2(self):
        HERE I WANT TO CALL func1

そしてmain.pyファイルで:

TestClass1 = TestClass()
TestClass1.func2()

最初に、次の方法で実行しようとしfunc1ました ( TestClass.py 内):func2

TestClass.func2()

しかし、この場合、次のエラー メッセージを受け取りました。

TypeError: unbound method func1() must be called with TestClass instance as first argument (got str instance instead)

したがって、この問題を理解する方法は、それ自体にTestClass1インスタンスはなくTestClass、メイン (呼び出し元) コードにのみ存在するということです。したがって、 main.pyからのTestClass呼び出し中に のインスタンスを渡したのを修正するために、次のようにします。func2

TestClass.func2(TestClass1)

func2それに応じて、必須の引数として それ(クラス)をに追加しました。結果、問題なく動いているようです。しかし、それがそれを行うための受け入れられた方法であることを確認したかった.

4

1 に答える 1

3

私はPythonの第一人者ではありませんが、呼び出す必要があり、参照func1func2使用する必要があるようです。これはJavaのself場合と似ています。this

于 2013-08-08T08:25:18.880 に答える