One - One Code All

Blog Content

python 杂谈之语言特性

Python   2013-03-16 17:50:05
  1. python中的可变对象与不可变对象。

    不可变对象:strings, tuples, 和numbers。当一个引用传递给函数的时候,函数自动复制一份引用。

    可变对象:list,dict等。函数内的引用指向的是可变对象,对它的操作就和定位了指针地址一样,在内存里进行修改。

  2. 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)来调用.

  3. python自省:自省OOP语言运行时能够获得对象的类型.比如type(),dir(),getattr(),hasattr(),isinstance()。

  4. 字典推导式:d = {key: value for (key, value) in iterable}

  5. 下划线:单下划线:指定变量私有约定;双下划线:内部区别和其他类相同的命名。

  6. 其他


上一篇:常见的相似度算法
下一篇:量化:常见策略指标合集

The minute you think of giving up, think of the reason why you held on so long.