>>> class Abcd:
... a = ''
... menu = ['a', 'b', 'c']
...
>>> a = Abcd()
>>> b = Abcd()
>>> a.a = 'a'
>>> b.a = 'b'
>>> a.a
'a'
>>> b.a
'b'
这都是正确的,每个对象都有自己的“A”,但是......Python。奇怪的类属性的行为
>>> a.menu.pop()
'c'
>>> a.menu
['a', 'b']
>>> b.menu
['a', 'b']
这怎么可能发生? 以及如何使用列表作为类属性?
你肯定不是第一次遇到这样的。我记得第一次碰到这个问题:花了我几天的时间才弄清楚问题所在。一旦你了解它是有道理的,但我个人认为这真的很不直观。 – 2010-04-25 07:48:25
@musicfreak:我真的不明白为什么人们会为此感到困惑。通过查看任何教程中的任何OO示例,您都可以了解这一点。为什么有人宁愿浪费“时间”,而不是投入几个小时来阅读教程,这超出了我的想象。 – nikow 2010-04-25 11:56:04
-1:有很多重复的。 – nikow 2010-04-25 11:57:03