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}
文件中的函数(是一个不同的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}
相关文章推荐
- Fatal Python error: PyImport_GetModuleDict: no module dictionary!
- win64下python2.7安装numpy
- python的版本切换
- 我的Python成长之路---第六天---Python基础(20)---2016年2月20日(晴)
- 把Sublime Text 2打造成一个轻量级Python的IDE
- 树莓派+python+web.py 搭建微信公众平台(1)
- [转]Introduction to Machine Learning with Python and Scikit-Learn
- 在win7上 python 无法安装 lxml的问题
- Python:鼠标滑动时坐标变化显示
- Python学习笔记--装饰器
- 一行 Python 实现并行化 -- 日常多线程操作的新思路
- 【零基础入门学习Python笔记015】字符串:格式化
- python--基础学习(一)开发环境搭建,体验HelloWorld
- samba和python和groovy的关联
- 如何在python下安装xgboost
- 编程书单:十本Python编程语言的入门书籍
- Python——编写类装饰器
- 在win7上 python 无法安装 lxml的问题
- 听技术播客:一边学Python编程一边学英语
- python 索引和分片