每当我调用我的函数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)
答案 0 :(得分: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)
答案 1 :(得分:1)
这很可能是因为你的hello函数不是类成员。在这种情况下,你不需要在方法声明中提供自我....而不是你好(自我,价值)只是说你好(价值)
例如......此代码段完全正常
def hello(value):
print 'Say Hello to ' + value
hello('him')
如果不是这种情况,请提供您的代码段,以便进一步帮助您。