gpt4 book ai didi

python - types.CodeType() python 调用的参数是什么?

转载 作者:太空狗 更新时间:2023-10-29 17:05:39 27 4
gpt4 key购买 nike

我目前正在尝试为 python 推出自己的“marshal”代码,这样我就可以将编译后的 python 代码存储在 Google App Engine 上,以动态方式提供脚本。正如你们都可以验证的那样,GAE 不支持“marshal”,并且“pickle”无法序列化代码对象。

我发现我可以用 types.CodeType() 构造一个代码对象,但它需要 12 个参数。

尽我所能,我找不到关于此调用的任何文档,我真的需要构建代码对象,以便我可以 exec() 它。我的问题是,有人知道这个types.CodeType()“构造函数”的参数是什么,或者有什么方法可以反省它吗?我已经使用了信息() 函数定义 here但它吐出的只是一般信息!

快速常见问题解答:

  • 问:为什么要编译代码?
  • 答:在 Google App Engine 上,CPU 时间成本很高,我可以节省的每一位 CPU 周期都很重要。
  • 问:为什么不用“marshal”?
  • 答:那是 unsupported modules in Google App Engine 之一.
  • 问:为什么不用“pickle”?
  • 答:Pickle 不支持代码对象的序列化。

更新

自 2011 年 7 月 7 日起,Google App Engine 基础架构不允许实例化代码对象,因此我的论点没有实际意义。希望这个问题将来能在 GAE 上得到解决。

最佳答案

提出的问题:

what are the parameters for this types.CodeType() "constructor"

来自关于 inspect module 的 python 文档:

co_argcount: number of arguments (not including * or ** args)
co_code: string of raw compiled bytecode
co_consts: tuple of constants used in the bytecode
co_filename: name of file in which this code object was created
co_firstlineno: number of first line in Python source code
co_flags: bitmap: 1=optimized | 2=newlocals | 4=*arg | 8=**arg
co_lnotab: encoded mapping of line numbers to bytecode indices
co_name: name with which this code object was defined
co_names: tuple of names of local variables
co_nlocals: number of local variables
co_stacksize: virtual machine stack space required
co_varnames: tuple of names of arguments and local variables

这篇博文有更详细的解释:http://tech.blog.aknin.name/2010/07/03/pythons-innards-code-objects/

注意:博客文章讨论的是 python 3,而上面引用的 python 文档是 python 2.7。

关于python - types.CodeType() python 调用的参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6612449/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com