您的位置:首页 > 编程语言 > Python开发

python 类定义编译执行

2016-03-18 17:06 162 查看
文件编译后形成一个字节码pyCodeObject对象

文件中的函数(是一个不同的codeBlock) 也会形成一个pyCodeObject对象存储在 文件pyCodeObject的 co_cnosts常量数据字典中

python class A(object): 和 def f(): 类似

在当前 pyFrameObject (sys._getframe().f_locals) 局部命名空间中新建一个 符号 绑定一个 类

a=A() 类的调用操作实际上是调用A.__class__ 的 tp_call操作的 类似c++的仿函数

>>> def A(object):

... pass

... a=1

...

>>> import sys

>>> print sys._getframe().f_locals

{'A': <function A at 0x7fcc18dd7668>, '__builtins__': <module '__builtin__' (built-in)>, '__package__': None, 'sys': <module 'sys' (built-in)>, '__name__': '__main__', '__doc__': None}

>>> class A(object):

... pass

... a=1

...

>>> print sys._getframe().f_locals

{'A': <class '__main__.A'>, '__builtins__': <module '__builtin__' (built-in)>, '__package__': None, 'sys': <module 'sys' (built-in)>, '__name__': '__main__', '__doc__': None}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: