58. Python中函数也是对象的内存分析举例

目录

函数也是对象, 内存底层分析


函数也是对象, 内存底层分析

Python 中,”一切都是对象”; 实际上, 执行def定义函数后, 系统就创建了相应的函数对象, 我们执行如下程序, 然后进行解释:

#测试函数也是对象
def print_star(n):
#执行def时,在堆里面创建一个函数对象,包含参数信息和函数体信息,栈里面也保存了一个叫print_star的对象
    print('*'*n)

print(print_star)
print(id(print_star))
c = print_star  #此时没有括号,此时就是把print_stat的值拷贝给c,都指向了堆里面的函数对象
c(3)



输出:

D:\wwwroot\pyiteam\venv\Scripts\python.exe D:/wwwroot/pyiteam/mypy01.py
<function print_star at 0x038F88E0>
59738336
***

Process finished with exit code 0

 

上面代码执行def时, 系统中会创建函数对象, 并通过print_star这个变量进行引用;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值