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 に答える