[英]TypeError object takes no parameters
我只是想編寫一個如何使用super
和__new__
的代碼。 這是代碼:
class Person(object):
def __new__(cls, name, age):
print('__new__called')
return super(Person, cls).__new__(cls, name, age)
def __init__(self, name, age):
print('__init__called')
self.name = name
self.age = age
def __str__(self):
return('<Person:%s(%s)>'%(self.name, self.age))
if __name__ == '__main__':
piglei = Person("piglei", 24)
print(piglei)
Python 引發了一個TypeError
並說明了關於第 4 行的內容, object() takes no parameters
。
object.__new__
不接受任何參數。 您在__new__
super
調用將失敗:
return super(Person, cls).__new__(cls, name, age)
因為您還將name
和age
傳遞給object.__new__
。
您不需要將這些傳遞給object
; 要么一起刪除__new__
定義,要么不傳遞任何參數給它:
return super(Person, cls).__new__(cls)
無論哪種方式,真的沒有理由在這里使用__new__
,但我猜你正在試驗。 如果是,請注意您也可以在super
刪除Person
和cls
並使用它的零參數形式,即:
return super().__new__(cls)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.