python成员属性特性

python成员属性内存特性

这篇博客主要分享一下python成员属性的内存特性,也就是python底层节约内存的优化方案

成员属性的默认值

假设我们在定义成员属性是给他一个默认值,那么所有的实例中的成员属性都是指向同一块内存,而不是每个实例创建不同的内存空间去存储成员属性,下面的代码实例

class MemoryCharacter(object):
    def __init__(self):
        self.aData: str = "123"


m1 = MemoryCharacter();
m2 = MemoryCharacter();

print(id(m1.aData), id(m2.aData));

m1.aData和m2.aData的内存地址都是一样的

2536375837360 2536375837360

python成员属性的内存会不会导致数据出问题

上面的代码实例可以看出,两个实例的成员属性的指向都是一样的,那么会不会出现这样的情况,就是修改m1.aData的值会不会改变m2.aData的值

class MemoryCharacter(object):
    def __init__(self):
        self.aData: str = "123"


m1 = MemoryCharacter();
m2 = MemoryCharacter();
m1.aData = "333";
print(m1.aData, m2.aData);
print(id(m1.aData), id(m2.aData))
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值