在我的代码中,我有很多这样的 if/elif 语句:
if type == "cat":
vote = VoteCat (
user = user,
cat_id = thing_id )
vote.save()
elif type == "dog":
vote = VoteDog (
user = user,
dog_id = thing_id )
vote.save()
更改我的代码以摆脱 if 语句并动态实例化我需要的对象的好方法是什么?我希望我可以编写的代码将实现与上面相同的功能,但看起来更像这样:
AnimalVote = get_animalvote_by_type(type)
AnimalVote.user = user
AnimalVote.assign_animal_id(thing_id)
AnimalVote.save()
最佳答案
最简单的翻译是:
types = dict('cat' = CatType, 'dog' = DogType)
newobj = types[type](user = user, cat_id = thing_id)
显然,这依赖于采用相同参数的类型。
关于python - 如何在 django/python 中动态创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14226292/