This topic created in 4410 days ago, the information mentioned may be changed or developed.
代码如下
class test:
group = []
def __init__(self,name):
self.name = str(name)
test0 = test(0)
test1 = test(1)
test_list = [test0,test1]
test_list[0].group.append(test_list[1].name)
#此时print test0.group 是['1'],这是把test1.name存入test0.group中。
test_list[1].group.append(test_list[0].name)
#但是在执行了上一句之后print test0.group 却变成了['1','0']
#我在上一句中为什么会改变test0的值?
#顺便一提这时print test1.group 会变成['1','0'],而不是预计的['0']
4 replies 1970-01-01 08:00:00 +08:00  | | 1 magine Mar 30, 2014 天哪……缩进全没了……大神们凑合着看吧QAQ |
 | | 2 bcxx Mar 30, 2014 1 group 是 test 这个类的属性,test0 test1 引用的都是同一个 group |
 | | 3 sorcerer Mar 30, 2014 via iPhone 1 虽然我是Python初学者,但也看出你的group是个类变量,当你访问实例变量时,如果实例没有那个属性,就返回类变量的值,所以你操作的都是类变量。最后类名首字母请用大写。 |
 | | 4 magine Mar 30, 2014 @ bcxx 多谢了,燃眉之急啊QAQ。是我基础知识不扎实…… @ sorcerer 我猜是初学者啊,泪…… 啊抱歉,调试程序的时候卡在这里了,急着构造一个样例,疏忽风格了。 |