初学者关于Python的__slots__的疑问

godmmx 2007-05-02 03:47:26
按照书上说一个类如果包含了__slots__就只能拥有__slots__所制定的那些属性,添加一个不在__slots__指定列表中的属性将引发一个错误。可是我在python2.5环境中
测试下面代码却不能引发一个异常,程序正常结束。

Code:

class Pointwithslots:
__slots__="x","y"

def __init__(self,xvalue = 0.0 ,yvalue = 0.0):
self.x = float(xvalue)
self.y = float(yvalue)

def main():
point = Pointwithslots()
newvalue = float(raw_input("Enter new x: "))
point.W = newvalue

if __name__ == "__main__":
main()

运行结果:

>>>
Enter new x: 3
>>>


...全文
246 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
iambic 2007-05-03
  • 打赏
  • 举报
回复
class Pointwithslots(object):
godmmx 2007-05-03
  • 打赏
  • 举报
回复
iambic()
常常见你回复,简洁明了,谢谢。
可是为什么一定要从object继承呢,我是小白,能否解释一下。
还有是否只要用到__slots__的时候都需要从object继承呢?
谢谢。
godmmx 2007-05-03
  • 打赏
  • 举报
回复
iambic()
谢谢
iambic 2007-05-03
  • 打赏
  • 举报
回复
如果需要的话,你也可以继承list或者dict。
iambic 2007-05-03
  • 打赏
  • 举报
回复
>>...by defining __slots__ in a new-style class definition.

new-style class要求继承Python中的一个内建类型。
godmmx 2007-05-02
  • 打赏
  • 举报
回复
回答一下问题啊
N / A 2007-05-02
  • 打赏
  • 举报
回复
I HATE NEW-STYLE CLASS!!!

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧