这是一个奇怪的问题,但我想知道是否有可能在python中构建一个包含key-in-key-value对的dict。下面,我想重写下面的类SwitchTest,用replace-duplicatedcustomer,product,animal替换实例键值对中的value。我该怎么做?或者更具体地说,如何在字典中的value中获取key的值?你知道吗
class Product():
def __init__(self, para):
self.para = para
.....
class Animal():
def __init__(self, para):
self.para = para
....
class Human():
def __init__(self, para):
self.para = para
....
class SwitchTest():
def __init__(self):
instance = {'customer': lambda x: setattr(SwitchTest, 'customer', Human(x)),
'product': lambda x: setattr(self, 'product', Product(x)),
'animal': lambda x: setattr(self, 'animal', Animal(x))}
我不太明白为什么还要将密钥也存储在值中。这违背了词典的概念。
如果您只是在返回值时将键添加到值中,这样您就有了一些自定义的dict:
在获得值后,将键添加到返回中:
要实现这一点,您可以子类
dict
并仅覆盖__getitem__
方法:此自定义词典
c_dict
的行为将与普通词典类似,除非您获得一个tuple
类型的值,该值包含str
类型的元素,在该类型中,chase键被添加到元素中,但仅在返回它们时才执行。你知道吗使用这种方法,您不必将键存储在值中,它可以保持概念上的分离完好无损。你知道吗
您可以轻松地在普通
dict
和此自定义c_dict
之间切换。因此,如果您想摆脱这种返回值的特殊方式,只需执行users = dict(users)
,users
也是一种简单的dict
。这两种方法都有效:希望这有帮助。快乐的编码!
数字背后有什么意义吗?你知道吗
输出:
相关问题 更多 >
编程相关推荐