python中的可变对象与不可变对象。
不可变对象:strings, tuples, 和numbers。当一个引用传递给函数的时候,函数自动复制一份引用。
可变对象:list,dict等。函数内的引用指向的是可变对象,对它的操作就和定位了指针地址一样,在内存里进行修改。
python中的静态方法(staticmethod),类方法(classmethod)和实例方法(self)。
def foo(x): print "executing foo(%s)"%(x) class A(object): def foo(self,x): print "executing foo(%s,%s)"%(self,x) @classmethod def class_foo(cls,x): print "executing class_foo(%s,%s)"%(cls,x) @staticmethod def static_foo(x): print "executing static_foo(%s)"%x a=A()
cls和self是对类或者实例的绑定。对于静态方法其实和普通的方法一样,不需要对谁进行绑定,唯一的区别是调用的时候需要使用a.static_foo(x)或者A.static_foo(x)来调用.
python自省:自省OOP语言运行时能够获得对象的类型.比如type(),dir(),getattr(),hasattr(),isinstance()。
字典推导式:d = {key: value for (key, value) in iterable}
下划线:单下划线:指定变量私有约定;双下划线:内部区别和其他类相同的命名。
其他