是否每次为可动态创建字典的可订阅对象调用__init__?

时间:2015-06-24 08:05:30

标签: python performance oop

我有这个课程,当然,这只是一个有效的例子:

class Intervals(dict):
    def __init__(self, *_):
        self.update({'P5': 7})

class Intervals(metaclass=Intervals):
    pass

我喜欢这个主意,因为我不需要这样的实例。

现在,只是,每当我调用Intervals['P5']__init__运行并在返回值之前构建新字典?

1 个答案:

答案 0 :(得分:0)

不,每次拨打Intervals['P5']时都不会构建新词典。

实际上,您的代码相当于:

class Intervals(dict):
    def __init__(self, *_):
        self.update({'P5': 7})

Intervals = Intervals()

您只需创建一个Intervals对象(只是使用某些值初始化的dict),并将其存储在名为Intervals的变量中,并隐藏Intervals