python多型
阿新 • • 發佈:2021-12-13
#對於弱型別的語言來說, 變數沒有申明型別,因此同一個變數完全可以再不同的事件引用不同的物件,當同一個變數再呼叫同一個方法時候,完全可以呈現出多種行為 #這就是多型 #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>