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

高洛峰
发布: 2017-03-27 16:52:16
原创
14803人浏览过

新手在学习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

运行会报错:

立即学习Python免费学习笔记(深入)”;

======================= 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

法语写作助手
法语写作助手

法语助手旗下的AI智能写作平台,支持语法、拼写自动纠错,一键改写、润色你的法语作文。

法语写作助手 31
查看详情 法语写作助手

出错原因是,在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中文网其它相关文章!

相关标签:
python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号