当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被叫做鸭子。
1.多个类中定义同一个方法,调用时就可以实现多态
例子1
class Cat:
def say(self):
print('I am a cat')
class Dog:
def say(self):
print('I am a dog')
class Duck:
def say(self):
print('I am a duck')
animal_list = [Cat, Dog, Duck]
for animal in animal_list:
animal().say()
所有的类和对象都实现的同一个方法,这个方法名一样,这些类就可以归类为一种类型
在Python中实现多态,只需要实现一样的方法
例子2
name_list1 = ['zjx1', 'zjx2']
name_list2 = ['zjx3', 'zjx4']
name_tuple = ('zzz1', 'zzz2')
name_set = set()
name_set.add('jjj1')
name_set.add('jjj2')
name_list1.extend(name_list2)
print(name_list1) # >>> ['zjx1', 'zjx2', 'zjx3', 'zjx4']
name_list1.extend(name_list2)语句可以将name_list2中的元素添加到name_list1中查看extend源码(此处为3.7,不同版本会有差异),源码中的注释为: 通过附加可迭代对象中的元素来扩展列表。
因此该方法中的参数为任何可迭代的对象都是可以的
def extend(self, *args, **kwargs): # real signature unknown
""" Extend list by appending elements from the iterable. """
pass
name_list1.extend(name_tuple)
print(name_list1) # >>> ['zjx1', 'zjx2', 'zzz1', 'zzz2']
name_list1.extend(name_set)
print(name_list1) # >>> ['zjx1', 'zjx2', 'jjj1', 'jjj2'~~ ~~]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。