1. 程式人生 > 其它 >python多型

python多型

#對於弱型別的語言來說, 變數沒有申明型別,因此同一個變數完全可以再不同的事件引用不同的物件,當同一個變數再呼叫同一個方法時候,完全可以呈現出多種行為
#這就是多型
#DrawCanvas的draw_canvas方法傳入一個shape引數,該方法就是呼叫shape引數的draw方法,將自己繪製再畫布上
class DrawCanvas:
    def draw_canvas(self,shape):
        shape.draw(self)

class Rectangle:
    def draw(self,canvas):
        print ("draw rectangle in %s
" % canvas) class Triangle: def draw(self,canvas): print "draw triangle in %s" % canvas class Circle: def draw(self,canvas): print "draw circle in %s" % canvas c = DrawCanvas() c.draw_canvas(Rectangle()) c.draw_canvas(Triangle()) c.draw_canvas(Circle())
draw rectangle in
<__main__.DrawCanvas instance at 0x0000000003815B88> draw triangle in <__main__.DrawCanvas instance at 0x0000000003815B88> draw circle in <__main__.DrawCanvas instance at 0x0000000003815B88>