内存管理py

内存管理

赋值语句内存管理

def extend_list(val,l=[]):
    print(l,id(l)) #打印列表l及其地址
    l.append(val)
    print(l,id(l)) #打印列表l及其地址
    return l


list1 = extend_list(10)
list2 = extend_list(123,[])
list3 = extend_list('a')

print(list1,list2,list3)

list1和list3共用一个地址。
运行结果:

[] 2392663771264
[10] 2392663771264
[] 2392664036032
[123] 2392664036032
[10] 2392663771264
[10, 'a'] 2392663771264
[10, 'a'] [123] [10, 'a']

进程已结束,退出代码0

垃圾回收机制

class Cat:
    def __init__(self):
        print(f"对象产生了,其内存为{id(self)}")
    def __del__(self):
        print(f"对象删除了,其内存为{id(self)}")

def f0():
    """自动回收内存"""
    while True:
        c = Cat()

def f1():
    """一直在引用,不会被回收,内存无限增长"""
    l = [] #定义空列表
    while True:
        c = Cat()
        l.append(c)

if __name__ == '__main__':		#相当于C语言中的main函数
    f0()

内存管理机制

内存管理机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值