pythontypeerror_详解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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值