疯狂python学习--多态到底有多多态

python语言特点有三种,不过其他的语言也有啦,封装、多态、继承。其中封装很好理解就是将程序装在一个黑盒子里面,只需要告诉你传入什么东西以及可以给你什么结果就好。继承是涉及__init__构造方法的内容。但是:多态,可以理解为将方法分布开来,通过更多的方式使用同一个方法。

多态,顾名思义将同一个方法用很多个状态表述,书中使用的是draw画画这个状态,。

先创建一个人基础的画画类

claas Canvas:
    def draw_pic(self,shape):
        print("star draw the picture")
        shape.draw(self)

从代码上看,这个Canvas类中需要传入一个shape参数,而这个shape是一个类,可以调用自身的draw方法,以实现各种各样的draw的功能。

class Rectangle:
    def draw(self, canvas):
        print("在%s 上绘制矩形", % canvas)
class Tritangle:
    def draw(self, canvas):
        print("在%s 上绘制三角形", % canvas)
class Circle:
    def draw(self, canvas):
        print("在%s 上绘制圆型", % canvas)

直接调用每个绘制类的draw方法即可。

c = Canvas()

c.draw_pic(Rectangle())
c.draw_pic(Triangle())
c.draw_pic(Circle())

多态突出的一个多种方法可以分开设置,并在同一个空间中进行设置。

你可能感兴趣的:(学习,python多态)