Python代码运行生成的含所有标记的列表是什么?有官方文档说明吗?
问题解析:gc.get_referrers返回的列表是什么?
运行代码
import gc def main(): a = 23764723 ref = gc.get_referrers(a)[0] print(ref) if __name__ == "__main__": main()
输出结果
['gc', 'main', 'a', 23764723, 'ref', 'gc', 'get_referrers', 'a', 0, 'print', 'ref', '__main__', '__name__', 'main']
列表的本质
这个列表是函数main的局部作用域符号表,说白了就是存储函数内部所有用到的名称和对应值/引用的容器。你在函数里定义的变量a、ref,引用的模块gc、函数get_referrers、print,甚至__name__、__main__这些特殊名称,都会被记录在这个表里,它是Python解释器管理函数局部作用域的内部结构。
官方文档的相关说明
Python官方文档对gc.get_referrers()的定义是:返回所有直接引用传入对象的容器(比如字典、列表、帧对象等)。这里返回的列表其实是函数执行帧(frame)的局部变量表的一种内部表现形式——函数运行时,解释器会用这类结构来维护局部作用域里的所有符号,属于解释器实现层面的细节。
内容的提问来源于stack exchange,提问作者Neil
相关产品推荐
相关产品推荐

