2版本开始,加入了Enclsoing function概念,也就是outer函数,该函数的命名空间为外层函数命名空间,其变量的作用域包含了inner函数的代码块,因此python在查找x变量时,也会查找该外层函数的命名空间。
可以看到,在创建类时,通过在标注父类的同时指定元类(格式为metaclass=元类名),则当 Python 解释器在创建这该类时,FirstMetaClass 元类中的 __new__ 方法就会被调用,从而实现动态修改类属性或者类方法的目的。
魔法方法是在Python的类中被双下划线前后包围的方法,如常见的 :init、new、__del__等。这些方法在类或对象进行特定的操作时会自动被调用,我们可以使用或重写这些魔法方法,给自定义的类添加各种特殊的功能来满足自己的需求。
反射就是通过字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动可使用反射的地方: 1、反射类中的变量 : 静态属性,类方法,静态方法2、反射对象中的变量、对象属性、普通方法3、 反射模块中的变量4、反射本文件中的变量 ...
搜索一下大家就会知道,python有两个主要的版本,python2 和 python3 ,但是python又不同于其他语言,向下兼容,python3是不向下兼容的,但是绝大多数组件和扩展都是基于python2的,下面就来总结一下python2和python3的区别。