补全:找出所有函数的代码对象

👁️ 3 人浏览 💬 0 人评论 ❤️ 添加收藏

(Python 自己就是「编译成字节码、由 VM 执行」:dis.get_instructions(f) 列出函数 f 的指令,每条有 opname(指令名)和 argval(操作数);f.__code__ 是代码对象,co_varnames 是局部变量名、co_argcount 参数个数、co_names 用到的全局名。不同 Python 版本的指令名会变,本节只看这些稳定的东西。)

一个模块里的函数各有一个代码对象;嵌套函数的代码对象藏在外层的 co_consts 里。补全 all_codes(co):递归收集代码对象(含自己),交回它们的名字(co_name)列表,按出现顺序。

提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论