鱼C论坛

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

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

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

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

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

x
本帖最后由 坚强的蚂蚁 于 2020-1-8 14:36 编辑
  1. >>> class D:
  2.             def __init__(self,size = 10):
  3.                     self.size = size
  4.             def __getSize__(self):
  5.                     return self.size
  6.             def __setSize__(self,value):
  7.                     return self.value
  8.             def __delSize__(self):
  9.                     del self.size
  10.             x = property(getSize,setSize,delSize)
  11. Traceback (most recent call last):
  12.   File "<input>", line 1, in <module>
  13.   File "<input>", line 10, in D
  14. NameError: name 'getSize' is not defined
复制代码

新手小白求助:跟着小甲鱼的视频操作,定义了这样一个类,但是有报错,不知道哪里出了问题,求大神指导
最佳答案
2020-1-8 18:00:36
自定义方法不用加下划线的。

  1. class D:
  2.         def __init__(self,size = 10):
  3.                 self.size = size
  4.         def getSize(self):
  5.                 return self.size
  6.         def setSize(self,value):
  7.                 return self.value
  8.         def delSize(self):
  9.                 del self.size
  10.         x = property(getSize,setSize,delSize)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-1-8 18:00:36 | 显示全部楼层    本楼为最佳答案   
自定义方法不用加下划线的。

  1. class D:
  2.         def __init__(self,size = 10):
  3.                 self.size = size
  4.         def getSize(self):
  5.                 return self.size
  6.         def setSize(self,value):
  7.                 return self.value
  8.         def delSize(self):
  9.                 del self.size
  10.         x = property(getSize,setSize,delSize)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢,没注意,确实是多加下划线了。代码里面定义setSize的时候修改了下,原先的有问题
  1. class D:
  2.         def __init__(self,size = 10):
  3.                 self.size = size
  4.         def getSize(self):
  5.                 return self.size
  6.         def setSize(self,value):
  7.                 self.size = value
  8.         def delSize(self):
  9.                 del self.size
  10.         x = property(getSize,setSize,delSize)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-8 20:39:21 | 显示全部楼层
  1. >>>   class D:
  2.         def __init__(self,size = 10):
  3.                 self.size = size
  4.         def getSize(self):
  5.                 return self.size
  6.         def setSize(self,value):
  7.                 self.size = value
  8.         def delSize(self):
  9.                 del self.size
  10.         x = property(getSize,setSize,delSize)
  11.         
  12. SyntaxError: unexpected indent
  13. >>> class D:
  14.         def __init__(self,size = 10):
  15.                 self.size = size
  16.         def getSize(self):
  17.                 return self.size
  18.         def setSize(self,value):
  19.                 self.size = value
  20.         def delSize(self):
  21.                 del self.size
  22.         x = property(getSize,setSize,delSize)

  23. >>> d = D()
  24. >>> d.x = 1
  25. >>> d.x
  26. 1
  27. >>> d.size
  28. 1
  29. >>> del d.size
  30. >>> d.x
  31. Traceback (most recent call last):
  32.   File "<pyshell#8>", line 1, in <module>
  33.     d.x
  34.   File "<pyshell#2>", line 5, in getSize
  35.     return self.size
  36. AttributeError: 'D' object has no attribute 'size'
  37. >>> d.x = 11
  38. >>> d.x
  39. 11
  40. >>>
复制代码

自己记录下操作过程,第一个红字报错,是我语法问题,没对齐。后面的报错是因为我把size属性删除了。size重新赋值,显示结果正常
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-11 11:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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