python中的TypeError錯誤解決辦法
阿新 • • 發佈:2019-02-19
新手在學習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 <module>
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