Python 包含self时,只接受2个参数(给定1个)

Python 包含self时,只接受2个参数(给定1个),python,self,Python,Self,每次我调用我的函数def helloself时,我都会得到一个错误:只接受给定的2个参数,所以我该怎么办 或者是否有其他方法可以执行此操作:self.statusitem.setImage\u self.iconsuccess 编辑: 我的代码的简单表示 Class A: func_in_class_B(value) Class B: def finishLaunching(self): self.statusitem.setImage_(self.icon) def func_i

每次我调用我的函数def helloself时,我都会得到一个错误:只接受给定的2个参数,所以我该怎么办

或者是否有其他方法可以执行此操作:self.statusitem.setImage\u 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

听起来你没有正确调用hello函数。给定以下类定义:

class Widget(object):
    def hello(self, value):
        print("hello: " + str(value))
您可能像这样调用静态函数:

Widget.hello(10)
widget = Widget()
widget.hello(10)
这意味着没有小部件类的实例作为第一个参数传递。您需要将hello函数设置为静态:

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

Widget.hello(10)
或者在一个特定的对象上调用它,如下所示:

Widget.hello(10)
widget = Widget()
widget.hello(10)

这很可能是因为hello函数不是类成员。在这种情况下,您不需要在方法声明中提供self。与其说他自己,不如说他自己

例如,这段代码非常好用

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

hello('him')

如果不是这样,请提供您的代码片段以进一步帮助您。

如何称呼hello?我想您需要向我们展示更多的代码。hello如何与self.statusitem.setImage匹配。。。?这些想法是如何联系在一起的?hello是定义为类上的一个方法,还是一个常规函数?添加了一个简单的代码表示法删除self引用,因为第一个参数不会使函数成为静态的,self只是第一个参数的名称。使用staticmethoddecoratorinstead@Kos啊,我从来没有在python中设置过静态函数。请随意编辑答案,使其准确无误。