python类的初始化出错了吗?请高手来看下

classFirstClass:defsetdata(self,value):self.data=valuedefdisplay(self):print(self.dat... class FirstClass:
def setdata(self,value):
self.data = value
def 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 = value
def _add_(self,other):
return ThirdClass(self.data + other)
def _str_(self):
return '[ThirdClass: %s]' % self.data
def mul(self,other):
self.data *= other
b = ThirdClass('abc')
b.display()

我是照着书上敲的代码页报以下错:
b = ThirdClass('abc')
TypeError: object.__new__() takes no parameters

求解 万分感谢
展开
 我来答
kaisa1028
推荐于2016-10-26 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5429
采纳率:28%
帮助的人:2568万
展开全部
python类的初始化函数是__init__,有两个“_”,你只有1个,所以python认为你的ThirdClass没有定义初始化函数,所以它就给你调用了默认的不接受参数的初始化函数,所以它才告诉你ThirdClass的不接受有参数的初始化。
shenwei5566
2012-10-23 · TA获得超过610个赞
知道小有建树答主
回答量:575
采纳率:33%
帮助的人:250万
展开全部
你可以用python2.4来跑一下,新版本的python好像不支持这样的带参数初始化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skier2701
2012-10-23 · TA获得超过261个赞
知道小有建树答主
回答量:263
采纳率:100%
帮助的人:242万
展开全部
楼上正解,从一开始的基类继承下来就没有初始化参数。你在实例化类的时候使用了ABC参数,python认为你传入了多余的参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bdwisyou7d
2012-10-23 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3774
采纳率:81%
帮助的人:1061万
展开全部
楼下回答的对。是两个下划线。不是一个。python最容易出现type error,所以通常python编程里会加入许多的单元测试,逐步调试。

比如你这个程序,显然前面的代码都是对的。出错肯定是ThirdClass,又是初始化出错。而你试图重载__init__,所以问题就是出在这里。

python编码规范中最重要的就是防type error.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式