我知道我可以用特定的键制作一本字典:
my_dict = dict.fromkeys(my_keys)
我知道我可以继承字典类:
class My_Dict_Class(dict):
...
但是如何将两者合并?我想创建一个字典类,我已经知道它将拥有的所有键。我知道我可以在课堂上设置一些键,但如果我能做的话,它不会更好更快:
class My_Dict_Class(dict.fromkeys(my_keys)):
...
我想这样做的原因是我听说fromkeys
比循环和设置键in this question要快得多。
MWE:
my_keys = [1,2,3]
my_dict = dict.fromkeys(my_keys)
class My_Dict_Class(dict):
def my_functions(self):
return
class My_Dict_Class(dict.fromkeys(my_keys)):
def my_functions(self):
return
Traceback (most recent call last):
File "dummy.py", line 8, in <module>
class My_Dict_Class(dict.fromkeys(my_keys)):
TypeError: Error when calling the metaclass bases
dict expected at most 1 arguments, got 3
答案 0 :(得分:1)
Python类继承自其他类,而不是类实例。如果您的目标是快速初始化每个实例的字典内容,则复制现有字典比您可以执行的任何其他操作都要快。例如,您可以定义:
class MyDict(dict):
_DEFAULT_CONTENTS = dict.fromkeys((1, 2, 3))
def __init__(self):
super(MyDict, self).__init__(self._DEFAULT_CONTENTS)
将(浅)复制现有的类默认字典以初始化实例。