Python入门基础篇 No.81 —— super()获得父类定义_多态
后世篇:特殊方法和运算符重载_特殊属性
小白不看都能懂:Python之真功夫系列(全章)
前言
一、super()获得父类定义
- 在子类中,如果想要获得父类的方法时,我们可以通过 super()来做。
- super()代表父类的定义,不是父类对象。
代码演示:
# super()
class A:
def say(self):
print('A:', self)
print('say A')
class B(A):
def say(self): # A.say(self) 调用父类的say方法
super().say() # 通过super()调用父类的方法
print('say B')
b = B()
b.say()
------------------------
A: <__main__.B object at 0x000002DA1D5962B0>
say A
say B
二、多态
- 多态(polymorphism)是指同一个方法调用由于对象不同可能会产生不同的行为。在现实生活中,我们有很多例子。比如:同样是调用人的休息方法,张三的休息是睡觉,李四的休息是玩游戏,程序员是敲代码。同样是吃饭的方法,中国人用筷子吃饭,英国人用刀叉吃饭,印度人用手吃饭。
- 关于多态要注意以下 2 点:
1.多态是方法的多态,属性没有多态。
2.多态的存在有 2 个必要条件:继承、方法重写。
代码演示:
# 多态
class Animal:
def shout(self):
print("动物的叫声")
class Dog(Animal):
def shout(self):
print("小狗,汪汪汪")
class Cat(Animal):
def shout(self):
print("小猫,喵喵喵")
def animal_shout(a):
if isinstance(a, Animal):
a.shout() # 传入的对象不同,shout方法对应的实际行为也不同。
animal_shout(Dog())
animal_shout(Cat())
----------------------------------
小狗,汪汪汪
小猫,喵喵喵
总结
以上帮各位总结好了,收藏,关注即可查收。
后世篇:特殊方法和运算符重载_特殊属性
小白不看都能懂:Python之真功夫系列(全章)
关注下方公众号,免费拿Python学习资料!!!