0
class Factor:
    def __int__(self, a, b, c):
        self.a = a
        self.b = b
        self.c = c

a = input("What is A?")
a = int(a)
b = input("What is B?")
b = int(b)
c = input("What is C?")
c = int(c)

e = Factor(a,b,c)

这是它为我创建的任何类返回的错误

Traceback (most recent call last):
  File "C:\Users\Alex\Desktop\Alex Factoring Extra Credit.py", line 37, in <module>
    e = Factor(a,b,c)
TypeError: object.__new__() takes no parameters

我制作的任何课程都会发生这种情况,我到处查看,卸载并重新安装,但我找不到解决方案。我复制和粘贴了我在其他地方找到的课程,这些课程可以使用,但我的课程可以使用,即使它完全相同。任何帮助表示赞赏。

4

1 回答 1

4

你没有__init__正确命名你的,你忘记了一个i.

class Factor:
    def __init__(self, a, b, c):

如果没有__init__()方法,参数将被发送到object.__new__()不带任何参数的父方法。

Python 3.3 上的演示(略有更新的错误消息):

>>> class Factor:
...     def __int__(self, a, b, c):
...         self.a = a
...         self.b = b
...         self.c = c
... 
>>> Factor(1, 2, 3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object() takes no parameters
>>> class Factor:
...     def __init__(self, a, b, c):
...         self.a = a
...         self.b = b
...         self.c = c
... 
>>> Factor(1, 2, 3)
<__main__.Factor object at 0x10a955050>
于 2013-05-15T21:49:12.907 回答