#Decorator
@deco1(deco_arg)
@deco2
def func():pass
等价于 func=deco1(deco_arg)(deco2(func))
另一种实现
def deco(fun,arg):
#dosomthing
return fun(arg)
@deco.__get__
def fun():pass
#反射机制
dir(),type()等内建函数,或对象的一些特殊属性__dict__,__name__,__doc__
#没有提供任何内部机制来跟踪一个类有多少个实例被创建了,或者记录这些实例是些什么东西
#支持长整数类型,长度只受限于虚拟内存的大小
#支持连续比较。
#快速生成列表。
#列表支持切片操作。
#元组可以自动打包和解包。
#用zip函数同时迭代2个列表。
#支持lambda函数。
#列表解析可以省略很多for循环、map和filter函数。
#支持缺省参数,且缺省参数位置随意。
#支持参数列表和参数字典。
#支持闭包和高阶函数。
#支持运行时创建实例属性(用的时候是爽,但也要承担之后发生的一切后果
>>> class C(object):
pass
>>> c=C()
>>> c.foo=42
>>> c.bar='Python'
>>> c.__dict__
{'foo': 42, 'bar': 'Python'}
>>> vars(c)
{'foo': 42, 'bar': 'Python'}
#对象的属性和方法可以动态改变。(要安全性上__slots__)
#对象的类型可以动态改变。
>>> class Parent(object):
def foo(self):
print 'call parent method'
>>> class Child(Parent):
def foo(self):
print 'call child method'
>>> o=Parent()
>>> o.foo()
call parent method
>>> o.__class__ = Child
>>> o.foo()
call child method