我正在创建一个我想要的对象 - 一个基于某些条件的字典或列表。我正在测试的基本版本如下:
class MyClass(dict):
def __init__(self, key, val, allowed):
self.d = {}
if key in allowed:
self.d[key] = val
super(MyClass, self).__init__(self.d)
else:
# I am a list and not a dict
obj = MyClass("a", "b", "abc")
我想知道这是否可行以及是否有更好的方法来实现类似的结果,这是一种“更好的编码实践”。
(我不想在创建对象之前进行预检查以确定密钥是否被允许)