多态

一.多态的概念

# 多态

# 猫
class Cat():
    def __init__(self,name):
        self._name = name

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, name):
        self._name = name

    def shout(self):
        print(self._name, '在喵喵叫~~~')

# 狗
class Dog():
    def __init__(self,name):
        self._name = name

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, name):
        self._name = name

    def shout(self):
        print(self._name, '在汪汪叫~~~')

# 多态的使用
cat = Cat('小花')
dog = Dog('旺财')

def sleep(obj):
    print(obj.name, '正在睡觉~~')

# 调用sleep的方法
sleep(cat)  # 小花 正在睡觉~~
sleep(dog)  # 旺财 正在睡觉~~

二.Python中的运用

# Python中,len()方法就是一个使用多态的方法,只要有__len__()方法的类都可以使用
a = [1,3,4]
b = (3,6,7,'五')
print(len(a))   # 3
print(len(b))   # 4

# 自定义一个类,使其能够使用len()方法
class Example01():
    def __len__(self):
        return 10

# 让Example01可以被len()方法调用
example = Example01()
print(len(example)) # 10
posted @ 2022-06-12 18:42  Na氢氧  阅读(28)  评论(0)    收藏  举报