class FirstClass:def setdata(self,value):self.data = valuedef display(self):print(self.data)x = FirstClass()y = FirstClass()x.setdata('King Arthur')y.setdata(3.14)x.display()y.display()x.data = 'New Data'x.display()class SecondClass(FirstClass):def display(self):print('current value = "%s"' % (self.data))z = SecondClass()z.setdata(43)z.display()class ThirdClass(FirstClass):def _init_(self,value):self.data = valuedef _add_(self,other):return ThirdClass(self.data + other)def _str_(self):return '[ThirdClass: %s]' % self.datadef mul(self,other):self.data *= otherb = ThirdClass('abc')b.display()我是照著書上敲的代碼頁報(bào)以下錯(cuò):b = ThirdClass('abc')TypeError: object.__new__() takes no parameters
3 回答

慕碼人2483693
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
python類的初始化函數(shù)是__init__,有兩個(gè)“_”,你只有1個(gè),所以python認(rèn)為你的ThirdClass沒有定義初始化函數(shù),所以它就給你調(diào)用了默認(rèn)的不接受參數(shù)的初始化函數(shù),所以它才告訴你ThirdClass的不接受有參數(shù)的初始化。
添加回答
舉報(bào)
0/150
提交
取消