python中typeerror_详解python中的TypeError错误解决办法

新手在学习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:\python\bounce1.py =======================

Traceback (most recent call last):

File "H:\python\bounce1.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:\python\bounce1.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

以上就是详解python中的TypeError错误解决办法的详细内容,更多请关注php中文网其它相关文章!

article_wechat2021.jpg?1111

本文原创发布php中文网,转载请注明出处,感谢您的尊重!