鱼C论坛

 找回密码
 立即注册
查看: 2172|回复: 3

[已解决]定义了一个类,运行有报错

[复制链接]
发表于 2020-1-8 14:36:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 坚强的蚂蚁 于 2020-1-8 14:36 编辑
>>> class D:
            def __init__(self,size = 10):
                    self.size = size
            def __getSize__(self):
                    return self.size
            def __setSize__(self,value):
                    return self.value
            def __delSize__(self):
                    del self.size
            x = property(getSize,setSize,delSize)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "<input>", line 10, in D
NameError: name 'getSize' is not defined
新手小白求助:跟着小甲鱼的视频操作,定义了这样一个类,但是有报错,不知道哪里出了问题,求大神指导
最佳答案
2020-1-8 18:00:36
自定义方法不用加下划线的。
class D:
        def __init__(self,size = 10):
                self.size = size
        def getSize(self):
                return self.size
        def setSize(self,value):
                return self.value
        def delSize(self):
                del self.size
        x = property(getSize,setSize,delSize)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-8 18:00:36 | 显示全部楼层    本楼为最佳答案   
自定义方法不用加下划线的。
class D:
        def __init__(self,size = 10):
                self.size = size
        def getSize(self):
                return self.size
        def setSize(self,value):
                return self.value
        def delSize(self):
                del self.size
        x = property(getSize,setSize,delSize)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-8 20:33:31 | 显示全部楼层
zltzlt 发表于 2020-1-8 18:00
自定义方法不用加下划线的。

谢谢,没注意,确实是多加下划线了。代码里面定义setSize的时候修改了下,原先的有问题
class D:
        def __init__(self,size = 10):
                self.size = size
        def getSize(self):
                return self.size
        def setSize(self,value):
                self.size = value
        def delSize(self):
                del self.size
        x = property(getSize,setSize,delSize)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-8 20:39:21 | 显示全部楼层
>>>   class D:
        def __init__(self,size = 10):
                self.size = size
        def getSize(self):
                return self.size
        def setSize(self,value):
                self.size = value
        def delSize(self):
                del self.size
        x = property(getSize,setSize,delSize)
        
SyntaxError: unexpected indent
>>> class D:
        def __init__(self,size = 10):
                self.size = size
        def getSize(self):
                return self.size
        def setSize(self,value):
                self.size = value
        def delSize(self):
                del self.size
        x = property(getSize,setSize,delSize)

>>> d = D()
>>> d.x = 1
>>> d.x
1
>>> d.size
1
>>> del d.size
>>> d.x
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    d.x
  File "<pyshell#2>", line 5, in getSize
    return self.size
AttributeError: 'D' object has no attribute 'size'
>>> d.x = 11
>>> d.x
11
>>> 
自己记录下操作过程,第一个红字报错,是我语法问题,没对齐。后面的报错是因为我把size属性删除了。size重新赋值,显示结果正常
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 16:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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