I just can not understand why this is happening. If we look at the source code of CPython , then you can see that both entities are equivalent and are represented as an array. This means that the call to dict() must not distinguish between speed and {} .
As an experiment (in order to make sure that it is the same entity) I tried to do this:
class Some({}.__class__): def hello(self): {}.__init__(self) print('Hi!') some = Some() some['one'] = 1 print(some['one']) some.hello() Output to console:
1 Hi! What should be expected.
Measured the speed of operations is not the most reliable way, but rather revealing:
>>> from timeit import timeit >>> timeit("{}") 0.058351269999548094 >>> timeit("dict()") 0.12427372599995579 Could you tell why {} is 2.5 times faster than dict() ?