假设您有 Dog、Cat、Pig 等类...都继承自 Animal,随机初始化其中一个的最佳方法是什么?
即一个基本的方法是拥有一个元组,从中选择一个项目,然后创建所选值的实例。
animals = ('dog', 'cat', 'pig'...)
choice = random.choice(animals)
if choice == 'dog':
new_animal = Dog()
elif choice == 'cat':
new_animal = Cat()
...
但显然这是非常低效的,如何最好地实现这种行为?
相关说明,如果您要求用户输入(标准输入、文本文件等)他们想要的动物,那么您将如何实例化正确的动物?同样,一个丑陋的方法是像上面那样使用一个很大的 if, elif 语句。
请您参考如下方法:
不是存储类名的字符串,而是存储实际的类本身,就像这样
animals = (Dog, Cat, Pig)
the_chosen_one = random.choice(animals)
new_animal = the_chosen_one()
