-1

関数を呼び出すたびにdef hello(self,value)エラーが発生します。takes exactly 2 arguments (1 given)どうすればよいでしょうか?

または、これを行う別の可能性があります: self.statusitem.setImage_(self.iconsuccess)?

編集:

私のコードの簡単な表現

Class A:
   func_in_class_B(value)

Class B:
def finishLaunching(self):
   self.statusitem.setImage_(self.icon)
def func_in_class_B(self,value)
   self.statusitem.setImage_(self.iconsuccess)

クラス A はバックグラウンド スレッドであり、クラス B はメイン スレッドであり、「self.statusitem.setImage_(self.icon)」を操作したい

4

2 に答える 2

3

hello 関数を正しく呼び出していないようです。次のクラス定義があるとします。

class Widget(object):
    def hello(self, value):
        print("hello: " + str(value))

おそらく、次のような静的関数のように呼び出しています。

Widget.hello(10)

これは、ウィジェット クラスのインスタンスが最初のパラメーターとして渡されないことを意味します。hello 関数を静的に設定する必要があります。

class Widget(object):
    @staticmethod
    def hello(value):
        print("hello: " + str(value))

Widget.hello(10)

または、次のように特定のオブジェクトで呼び出します。

widget = Widget()
widget.hello(10)
于 2013-02-04T19:01:00.010 に答える
1

これはおそらく、hello 関数がクラス メンバーではないためです。その場合、メソッド宣言で self を指定する必要はありません....つまり、hello(self,value) の代わりに hello(value) と言うだけです。

たとえば...このスニペットはまったく問題なく動作します

def hello(value):
    print 'Say Hello to ' + value

hello('him')

そうでない場合は、さらに役立つコード スニペットを提供してください。

于 2013-02-04T19:07:22.297 に答える