假设我有一个dogs字典,其中key是dog的名称,value是一个类dog的实例。你知道吗
my_dogs = {'Ollie': Dog(...), 'Lassie': Dog(...)}
如果我想认识我的狗,我可以用钥匙接近它们
my_dogs['Ollie']
我想把这个结构作为一个类,比如
class MyDogs():
def __init__(self):
self.ollie = Dog()
self.lassie = Dog()
所以我可以像这样接近我的狗:
my_dogs = MyDogs()
my_dogs.lassie
使用字典,我可以为我的狗创建任何名字,只需将键设置为它的名字,但是在类中变量是硬编码的,这是我不想要的。你知道吗
问题:我可以定义一个名称存储在另一个变量中的变量吗?比如:
class MyDogs():
def __init__(self, dog_names):
self.eval(dog_names[0]) = Dog()
self.eval(dog_names[1]) = Dog()
这样MyDogs将有两个实例,它们以作为参数传递的dog\u名称命名。你知道吗
这可能吗?这是一个好的做法还是我应该有不同的结构?你知道吗
可能是过度杀戮,但您可以使用
MutableMapping
实现一个模仿字典的类,这样您就可以拥有您建议的接口:输出:
你可以用
setattr
来做这个相关问题 更多 >
编程相关推荐