python--copy类赋值中的值问题

日月山人 发布于 2014/10/05 09:17
阅读 278
收藏 1
lass Car:
    pass
car1 = Car()
car1.wheels =4
car2 = car1
car2.wheels=3
print(car1.wheels)
print(car2.wheels)


第一个问题, 为什么类中并没有定义wheels属性,car1可以就这么使用?

第二个问题,为什么car1.wheels 的结果是3 , 如果说car1 =car2,我能想明白,反过来,就不知道了

谢谢了

加载中
0
DavidWTF
DavidWTF
Python 没有类保护机制,你可以在类的定义之外改变类和实例的内容。再加上不需要声明变量,第一次给变量赋值时就创造变量。car1.wheels=4就会给car1加四个轮子。只是car1噢,其它的Car是没有的。后面car2=car1,其实还是一辆车,只是多了个可以访问它的变量。就像你的车多配了把钥匙。所以car2把车弄成了三轮车,你用car1这把钥匙开它还是三轮车呀!
返回顶部
顶部