• 技术文章 >后端开发 >Python教程

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

    高洛峰高洛峰2017-03-27 16:52:16原创11011
    新手在学习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

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

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python
    上一篇:详解使用python自动生成docker nginx反向代理配置方法 下一篇:深入了解常用的Python Web的几大框架
    Web大前端开发直播班

    相关文章推荐

    • 一起聊聊Python的编码样式• 带你搞懂Python反序列化• 一起来分析Python怎么操作XML文件• 归纳整理!Python实用技巧总结• 归纳整理python正则表达式解析
    1/1

    PHP中文网