[python学习心得13]函数的内存分析

核心点:在python里,一切都是对象,函数也是对象
当执行完def定义之后,会在内存里创建一个函数对象,并指向函数名所在的变量里。

例如,

 def print_star(n):
      print("*"*n)
        


print(id(print_star))
c = print_star
print(id(c))

#运行结果print(id(print_star))和print(id(c))是一样的。

内存分析图如下:


内存分析图.png

当函数定义完成后,会在堆内存里创建一个函数对象,并将地址传递给栈内存里的变量,print_star;


内存分析图.png

c = print_star,在栈内存里,创建一个新的变量c,指向函数对象。

因此,调用函数c(),也会通过引用,找到堆内存中的函数对象,并执行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容