一.多态的概念
# 多态
# 猫
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