有这样的需求,定义一个类,该类的不同对象都具有列表,能进行独立的增删元素的操作。但如果把列表定义成类的成员的话,似乎所有对象公用一个列表。这样导致的结果就是所有对象的列表内容都一样。如何解决这个问题呢
1
eriale Aug 10, 2014
为什么会有这种情况?python中对象自己的属性是不会共享的。
class A(): def __init__(self): self.lst = [] |
2
lll9p Aug 11, 2014
在Python里,类变量通常在内部被当做字典来处理并遵循通常所说的方法解析顺序(Method Resolution Order (MRO))。
看这里: http://blog.jobbole.com/68256/ |
3
magine Aug 11, 2014
如一楼所写的那样,把列表初始化放在构造函数中,而不是类空间中。
|
4
yueyoum Aug 11, 2014
LZ 先去补一补 面向对象知识
|