找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3117|回复: 3

[代码与实例] 求解,为何会报错?

11

主题

26

帖子

26

积分

贫民

积分
26
jingseyi2011 发表于 2017-11-14 19:37:26 | 显示全部楼层 |阅读模式
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class Box:
    def __init__(self):
        self.length = 0
        self.width = 0
        self.height = 0
        self.__volumn = (self.length)*(self.width)*(self.height)
    def length(self,length):
        print('length:',length)
        self.length = length
    def width(self,width):
        print('width:',width)
        self.length = width
    def height(self,height):
        print('height:',height)
        self.height = height
        
    def info(self):
        print('length:',self.length,'width:',self.width,'height:',self.height,'Volumn is:',self.__volumn)
if __name__ == '__main__':
    a = Box()
    a.length(3)
    a.width(4)
    a.height(5)
    a.info()

上面程序运行结束后,报错:
Traceback (most recent call last):
  File "D:/SW/Python/program-defined/40_class.py", line 27, in <module>
    a.length(3)
TypeError: 'int' object is not callable

回复

使用道具 举报

3

主题

278

帖子

278

积分

侠客

积分
278

热心会员

uitb 发表于 2017-11-14 20:48:55 | 显示全部楼层
本帖最后由 uitb 于 2017-11-14 20:50 编辑

class Box:
继承类不写,但至少还是要个括号吧
最好还是把继承类写上:
class Box(object):
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
Ashin 发表于 2017-11-15 09:19:42 | 显示全部楼层
你定义了一个属性length 又定义了一个方法 length 掉用的时候调用了属性,方法名最好设置为setLength()
回复 支持 反对

使用道具 举报

11

主题

26

帖子

26

积分

贫民

积分
26
jingseyi2011  楼主| 发表于 2017-11-15 11:36:01 | 显示全部楼层
Ashin 发表于 2017-11-15 09:19
你定义了一个属性length 又定义了一个方法 length 掉用的时候调用了属性,方法名最好设置为setLength() ...

多谢大神,run 过了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表