韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python高级 > 一文带你了解python中的多态

一文带你了解python中的多态

头像

silencement

2020-03-05 22:24:353027浏览 · 0收藏 · 0评论

我们都知道,Python 是弱类型语言,其最明显的特征是在使用变量时,无需为其指定具体的数据类型。这会导致一种情况,即同一变量

可能会被先后赋值不同的类对象,例如:

class CLanguage:
    def say(self):
        print("赋值的是 CLanguage 类的实例对象")
class CPython:
    def say(self):
        print("赋值的是 CPython 类的实例对象")
a = CLanguage()
a.say()
a = CPython()
a.say()

运行结果为:

赋值的是 CLanguage 类的实例对象
赋值的是 CPython 类的实例对象

可以看到,a 可以被先后赋值为 CLanguage 类和 CPython 类的对象,但这并不是多态。类的多态特性,还要满足以下 2 个前提条件:继承:多态一定是发生在子类和父类之间;重写:子类重写了父类的方法。

下面程序是对上面代码的改写:

class CLanguage:
    def say(self):
        print("调用的是 Clanguage 类的say方法")
class CPython(CLanguage):
    def say(self):
        print("调用的是 CPython 类的say方法")
class CLinux(CLanguage):
    def say(self):
        print("调用的是 CLinux 类的say方法")
a = CLanguage()
a.say()
a = CPython()
a.say()
a = CLinux()
a.say()

执行结果

调用的是 Clanguage 类的say方法
调用的是 CPython 类的say方法
调用的是 CLinux 类的say方法

可以看到,CPython 和 CLinux 都继承自 CLanguage 类,且各自都重写了父类的 say() 方法。从运行结果可以看出,同一变量 a 在执行同一个 say() 方法时,由于 a 实际表示不同的类实例对象,因此 a.say() 调用的并不是同一个类中的 say() 方法,这就是多态。

但是,仅仅学到这里,读者还无法领略 Python 类使用多态特性的精髓。其实,Python 在多态的基础上,衍生出了一种更灵活的编程机制。

继续对上面的程序进行改写:

class WhoSay:
    def say(self,who):
        who.say()
class CLanguage:
    def say(self):
        print("调用的是 Clanguage 类的say方法")
class CPython(CLanguage):
    def say(self):
        print("调用的是 CPython 类的say方法")
class CLinux(CLanguage):
    def say(self):
        print("调用的是 CLinux 类的say方法")
a = WhoSay()
#调用 CLanguage 类的 say() 方法
a.say(CLanguage())
#调用 CPython 类的 say() 方法
a.say(CPython())
#调用 CLinux 类的 say() 方法
a.say(CLinux())

程序执行结果为:

调用的是 Clanguage 类的say方法
调用的是 CPython 类的say方法
调用的是 CLinux 类的say方法

此程序中,通过给 WhoSay 类中的 say() 函数添加一个 who 参数,其内部利用传入的 who 调用 say() 方法。这意味着,当调用 

WhoSay 类中的 say() 方法时,我们传给 who 参数的是哪个类的实例对象,它就会调用那个类中的 say() 方法。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

一枪战三母免费观看完整版| 日韩| 日本妈妈DNA和儿子DNA区别| 《玉蒲团2之艳乳欲仙欲》| 宝贝~腿开大点我添添| 一品国精和二品国精的文化意义| 我在公车被蹭水后当晚就来了月经| 少妇激情偷公乱140章| 我在公车被蹭水后当晚就来了月经 | 《帐篷里的秘密》动漫| 蜜桃视频| 《交换做爰》在线观看| 搜索引擎| 《酒店激战》动漫1-5集免费观...| 天美麻花星空影视免费观看电视剧| 《十二寡妇肉床艳史》| 医生含着我的奶边摸边做视频| 解冻| 日韩大片PPT免费PPT | 亚州精品无码A片毛片吸奶视频 | 女朋友太骚了每次进去都觉得很疼| 宝宝真骚是不是想被C| 半插和全插有什么区别| 三个男人躁我奶头好舒服| 动物扌桑辶鬲的| 省委书记和他的秘书们| 苍井空高清图片| 7K7K影院免费观看电视剧大全| 性和死亡| 《再来一次好吗》日剧观看| 开会桌下把荫蒂添的好多水| 火车上荫蒂添的好舒服图片| 医生一直揉白带湿漉漉的正常吗| 妈妈装睡配合孩子阴阳调和| 女性扒开大腿内侧小肚子痒| 蜜桃成时熟2| 三个老头拥着躁我一晚| 高压监狱免费观看完整版在线播放| 亚洲XXX午休国产熟女| 局长边摸边吃奶边做爰| 美国色情巜做爰4