python 中的多态

动态语言的多态和静态语言c++等多态含义不太一样,c++中的多态就是参数数量和类型不同的方法就是不同方法,而动态语言中的多态其实值的是方法的寻找过程,即向右找到类(或者单件类),在类中找不到的话再找父类,一直在祖先链中找到或者找不到为止,先找到的就被调用:

class MyClass(object):
    def fn(x):
        print ("This is the first fn")
    def fn(x,y):
        print ("This is the second fn")

obj = MyClass()
obj.fn(1)

结果fn被复写,而没有实现多态:

This is the second fn
[Finished in 0.2s]
posted @ 2015-08-12 17:39  蒙面  阅读(204)  评论(0编辑  收藏  举报