本人刚刚接触Python
, 目前使用python 3.6
, 遇到了一点关于类属性的问题, 代码如下:
class A(): def __init__(self): self.x = 0 self.y = 0 self.z = [self.x, self.y] def add_one(self): self.x += 1 # self.z = [self.x, self.y]a = A() a.add_one() print(a.x) # 1print(a.z) # [0, 0]
问题如下:
假设在add_one
方法里面没有self.z = [self.x, self.y]
这段代码, 可以发现虽然x
是更新了, 但是z
并没有随着x
的更新而更新, 除非手动加上这段代码才可以实现更新, 请问这是为什么?
另外请教一下有没有其他可以更加简便的方法进行对属性的更新? 因为目前这种代码更新起来很麻烦, 增加一个更新方法就需要将所有被更新的属性手动更新一次
愿有前辈能指点一下, 若有表述不当, 请见谅!
沧海一幻觉
相关分类