假设您有狗,猫,猪等类......所有这些都是从动物继承的,那么随机初始化它的最佳方法是什么?
即一个基本的方法是有一个元组,从中选择一个项目,然后创建所选值的实例.
animals = ('dog', 'cat', 'pig'...)
choice = random.choice(animals)
if choice == 'dog':
new_animal = Dog()
elif choice == 'cat':
new_animal = Cat()
...
Run Code Online (Sandbox Code Playgroud)
但显然这是非常低效的,如何实现这种行为最好?
在相关的说明中,如果您要求用户输入(stdin,textfile等)他们想要的动物,那么您将如何实例化正确的动物呢?再一个丑陋的方式,这将是一个很大的if,elif语句如上所述.
而不是存储类名字符串,而是存储实际的类本身,就像这样
animals = (Dog, Cat, Pig)
the_chosen_one = random.choice(animals)
new_animal = the_chosen_one()
Run Code Online (Sandbox Code Playgroud)