这是一个创建于 3715 天前的主题,其中的信息可能已经有所发展或是发生改变。
代码如下
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 条回复 • 1970-01-01 08:00:00 +08:00
|
|
1
magine 2014-03-30 19:12:31 +08:00
天哪……缩进全没了……大神们凑合着看吧QAQ
|
|
|
2
bcxx 2014-03-30 19:37:56 +08:00 1
group 是 test 这个类的属性,test0 test1 引用的都是同一个 group
|
|
|
3
sorcerer 2014-03-30 19:43:57 +08:00 via iPhone 1
虽然我是Python初学者,但也看出你的group是个类变量,当你访问实例变量时,如果实例没有那个属性,就返回类变量的值,所以你操作的都是类变量。最后类名首字母请用大写。
|
|
|
4
magine 2014-03-30 20:04:11 +08:00
@ bcxx 多谢了,燃眉之急啊QAQ。是我基础知识不扎实…… @ sorcerer 我猜是初学者啊,泪…… 啊抱歉,调试程序的时候卡在这里了,急着构造一个样例,疏忽风格了。
|