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

2024-04-24 16:09:26 发布

您现在位置:Python中文网/ 问答频道 /正文

每次我调用我的函数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)


Tags: 函数inselfhellovaluedef错误class
2条回答

这很可能是因为hello函数不是类成员。在这种情况下,您不需要在方法声明中提供self……即,只需说hello(value)就可以代替hello(self,value)

例如…这个片段工作得非常好

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

hello('him')

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

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

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

您可能像这样调用静态函数:

Widget.hello(10)

这意味着widget类的任何实例都不能作为第一个参数传递。您需要将hello函数设置为静态:

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

Widget.hello(10)

或者对这样的特定对象调用它:

widget = Widget()
widget.hello(10)

相关问题 更多 >