1

我不确定为什么会收到消息错误

TypeError: __init__() 正好需要 3 个参数(给定 4 个)

对于下面描述的代码:

class Worker(object):
    def __init__(arg1,arg2,arg3):
        self.arg1 = arg1
        self.arg2 = arg2
        self.arg3 = arg3
    def some_function(self):
        print "it works: " + arg1 + arg2 + arg3

w=Worker("a","b","c")
w.some_function()

我会错过什么?

4

3 回答 3

6

应该是def __init__(self, arg1,arg2,arg3):。您还需要将print语句更改some_function

print "it works: " + self.arg1 + self.arg2 + self.arg3
于 2012-10-12T11:05:01.270 回答
4
def __init__(self,arg1,arg2,arg3):
于 2012-10-12T11:02:35.673 回答
1

任何类函数的第一个参数应该始终是self.

好吧,名字并不重要,但这就是它的意思。

所以你的函数定义应该是这样的:

def __init__(self,arg1,arg2,arg3): 
    self.arg1 = arg1 
    self.arg2 = arg2 
    self.arg3 = arg3 
于 2012-10-12T11:02:35.390 回答