小编Rus*_*uss的帖子

Python类范围和列表

我仍然是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
Run Code Online (Sandbox Code Playgroud)

运行此结果会产生以下输出:

['Hey!']
1
['Hey!', 'Hey!']
1
Run Code Online (Sandbox Code Playgroud)

很明显,我希望类变量能够得到完全相同的数据,并且输出完全相同......我无法在任何地方找到的是什么使得列表与字符串或数字不同,为什么是列表从后续的第一个实例中引用相同的列表?很明显,我可能误解了某种范围机制或列表创建机制.

python

10
推荐指数
3
解决办法
1774
查看次数

标签 统计

python ×1