通过字典调用函数列表(替代 if...elif....elif....else调用分支)
class Animal:
def __init__(self,name,age):
self.name=name
def speak(self):
pass
class Dog(Animal):
def speak(self):
print(f"{self.name} 汪")
class Cat(Animal):
def speak(self):
print(f"{self.name} 喵")
def main():
mydog = Dog("旺财",4)
mycat = Cat("果果",5)
animals= [mydog, mycat]
for a in animals:
a.speak()
main()
func:dict={
0:Dog("旺旺",1),
1:Cat("猫猫",2)
}
ver=1
an = func.get(ver,Dog("getdog",1))
an.speak()
替代 if...elif....elif....else
def callfuc(ver:int):
if ver==0:
first()
elif ver==1:
second()
elif ver==2:
third()
else:
default()
callfuc(0)
callfuc(1)
callfuc(2)
funcdicts:dict={
0:first(),
1:second(),
2:third()
}
ver=1
fuc = funcdicts.get(ver,default)
fuc()