Python对象的属性名长度对性能有影响吗?

问题描述 投票:0回答:0

Python 对象在

__dict__
字典中保留属性(除非您使用
__slots__
),并且您可以在运行时使用
setattr()
将任意字符串指定为对象的属性。这意味着每次访问或分配属性时,解释器都必须对属性名称执行字符串散列以从字典中获取它的值,字符串越长,开销越大。这是否会影响小程序的性能,其中属性名称的散列成本与程序正在做的其他事情相当?

此外,如果我理解正确的话,这不适用于常规变量名,因为在字节码中它们被转换为某种整数索引,对吧?

python python-3.x performance dictionary interpreter
© www.soinside.com 2019 - 2024. All rights reserved.