Python 使用“插槽”比dict快,但启动速度较慢,有解决办法吗?

Python 使用“插槽”比dict快,但启动速度较慢,有解决办法吗?,python,performance,class,dictionary,slots,Python,Performance,Class,Dictionary,Slots,因此,我试图比dict()更快地创建和访问属性 因此,假设使用一个非常简单的类/dict,您可以看到\uuuuuuuuuuuuuuuuuuuuuuuuuu>对于属性访问更快/等效: 导入时间信息 class A: __slots__ = ('a',) def __init__(self, a): self.a = a a = A(10) v = {'B': 10} %timeit A.a %timeit v['B'] 10000000 loops, best

因此,我试图比dict()更快地创建和访问属性

因此,假设使用一个非常简单的类/dict,您可以看到
\uuuuuuuuuuuuuuuuuuuuuuuuuu>对于属性访问更快/等效:
导入时间信息

class A:
    __slots__ = ('a',)

    def __init__(self, a):
        self.a = a

a = A(10)
v = {'B': 10}

%timeit A.a
%timeit v['B']
10000000 loops, best of 3: 28.3 ns per loop
10000000 loops, best of 3: 29 ns per loop
但是如果你测试速度,包括开始上课/听写,结果会非常不同:

%timeit A(10).a
%timeit {'B': 10}['B']
1000000 loops, best of 3: 216 ns per loop
10000000 loops, best of 3: 58.8 ns per loop
有什么方法可以加快课程的起始阶段吗?为什么
dict()
启动速度要快得多


谢谢cython
扩展类型的创建速度是否快得多?我不会叫它快0.7ns。@jamesschiner,这是我的猜测。dict()是用C实现的,但该类必须经过Python对象shenigans