【问题标题】:Why am I receiving a TypeError for an object type int in python?为什么我在 python 中收到对象类型 int 的 TypeError?
【发布时间】:2018-04-24 08:31:45
【问题描述】:

所以我有一个项目,我正在尝试测试它是否按预期工作。每次我去测试它时,它都会说有一个 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

【问题讨论】:

  • 发布回溯以及更多代码,没有足够的信息供我们其他人使用。
  • 当我尝试通过添加第三个参数来解决此问题时发生 TypeError

标签: python testing arguments typeerror


【解决方案1】:

我认为你这里有一个错字

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

您应该关闭列表并删除结尾的逗号

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

【讨论】:

    【解决方案2】:

    如果您的__init__ 是在一个类中定义的,那将成为一个方法,并且它应该以类实例的self 参数开头。

    尝试像这样在类定义中定义__init__

        def __init__(self, people_after_me, items):
    

    【讨论】:

      猜你喜欢
      • 2019-12-28
      • 1970-01-01
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 2021-03-27
      • 2020-04-14
      相关资源
      最近更新 更多