python中的TypeError错误解决办法

2017-01-10 10:04:23来源:作者:vickyclarke132人点击

第七城市
新手在学习python时候,会遇到很多的坑,下面来具体说说其中一个。
在使用python编写面向对象的程序时,新手可能遇到TypeError: this constructor takes no arguments这个错误。
例如下面的程序:

class Ball:
def _init_(self,color,size,direction):
self.color=color
self.size=size
self.direction=direction
def bounce(self):
if self.direction=="down":
self.direction="up"
myBall=Ball("red","small","down")
print "I just created a ball."
print "My ball is",myBall.size
print "My ball is",myBall.color
print "My ball's direction is",myBall.direction
print "Now I'm going to bounce the ball"
print
myBall.bounce()
print "Now the ball's direction is",myBall.direction
运行会报错:
======================= RESTART: H:pythonbounce1.py =======================
Traceback (most recent call last):
File "H:pythonbounce1.py", line 11, in
myBall=Ball("red","small","down")
TypeError: this constructor takes no arguments出错原因是,在python中构造函数书写格式是__init__,而不是_init_,即在init两侧都是双下划线,不是单下划线。
修改后如下:
class Ball:
def __init__(self,color,size,direction):
self.color=color
self.size=size
self.direction=direction
def bounce(self):
if self.direction=="down":
self.direction="up"
myBall=Ball("red","small","down")
print "I just created a ball."
print "My ball is",myBall.size
print "My ball is",myBall.color
print "My ball's direction is",myBall.direction
print "Now I'm going to bounce the ball"
print
myBall.bounce()
print "Now the ball's direction is",myBall.direction这是正确的运行结果:
======================= RESTART: H:pythonbounce1.py =======================
I just created a ball.
My ball is small
My ball is red
My ball's direction is down
Now I'm going to bounce the ball
Now the ball's direction is up



内容来源:http://www.cnblogs.com/lingan-hong/p/6260014.html

第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台