2017-11-11 200 views
3

所以我有一个项目,我试图测试,看它是否按预期工作。每次我去测试它时都会说有一个TypeError,或者说我没有收到足够的论据。为什么我在python中接收对象类型int的TypeError?

这是我使用的测试情况的​​一个例子:

pirates.process(0, [('Q', 10000), ('S', 9000), ]) 

我的定义是这样的:

__init__(people_after_me, items) 

我该如何解决这个问题?

Traceback (most recent call last): 
    File "F:\lib\unittest\case.py", line 59, in testPartExecutor 
    yield 
File "F:\lib\unittest\case.py", line 605, in run 
testMethod() 
File "C:\Users\Travis Jones\PycharmProjects\pirates\piratesTest.py", line 
12, in test00 
    ('S', 9000), 
TypeError: __init__() takes 2 positional arguments but 3 were given 
+0

发布追踪以及更多的代码,没有足够的信息让我们其他人调试。 – metatoaster

+0

当我尝试通过添加第三个参数来解决此问题时,会出现TypeError – Darkhail

回答

1

如果您__init__是一个类中定义,这成为一种方法,它应该以self的参数引导类实例。

尝试在类定义中定义__init__,如下所示。

def __init__(self, people_after_me, items): 
0

我觉得你在这里

pirates.process(0, [('Q', 10000), ('S', 9000), ])

一个错字,你应该关闭列表,删除后面的逗号

pirates.process(0, [('Q', 10000), ('S', 9000)])

+1

不会影响代码 – Darkhail

相关问题