我对
Python还是比较新的,我的OO经验来自于Java.所以我有一些Python编写的代码对我来说非常不寻常,给出以下代码:
class MyClass():
mylist = []
mynum = 0
def __init__(self):
# populate list with some value.
self.mylist.append("Hey!")
# increment mynum.
self.mynum += 1
a = MyClass()
print a.mylist
print a.mynum
b = MyClass()
print b.mylist
print b.mynum
运行此结果将产生以下输出:
['Hey!']
1
['Hey!', 'Hey!']
1
显然,我期望类变量产生相同的精确数据,同样精确的输出…我似乎找不到任何地方是什么使一个列表不同于说一个字符串或数字,为什么是列表从后面的第一个实例化引用相同的列表?很明显,我可能会误解某种示范力学或者列表创建力学.