Python的设计很有意思, 它为许多东西建立了对象,从而实现了反射机制。从模块,类,到函数,对象,和代码片段,都有与之对应的类的存在。直接在终端中输入名称,即可获取相应的对象的信息。
例如以下信息:
当创建类型A后, A的名字就代表了一个类型为class的对象,这其实和java的反射机制一样,类似于java的Class类。由于A代表的是一个callable的对象,所以直接调用A(),从而产生了一个实例对象。该对象的类型为__main__.A。
再比如:
python为每个函数建立了对象,函数名即为该对象的引用。由于它也是可调用的,B()将执行函数的代码,而不是建立类的实例。
在core python中,介绍了四种可调用对象,即函数,方法,类,类的实例。类的实例是个特例,因为每个类中有个__call__方法,定义了以后就可以调用类的实例了。
这就是解释性语言的魅力,它可以在代码加载内存前做任何合适的工作,从而更加灵活的去实现语言的各种特性。
由于这些对象的存在,我们可以实现python的反射机制。详细请看: http://hi.baidu.com/jiyeqian/blog/item/56e2a3a7b8671213cb.html
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务