gpt4 book ai didi

python - 为什么类 __dict__ 是映射代理?

转载 作者:IT老高 更新时间:2023-10-28 20:25:02 27 4
gpt4 key购买 nike

我想知道为什么一个类 __dict__ 是一个 mappingproxy,而一个实例 __dict__ 只是一个普通的 dict

>>> class A:
... pass

>>> a = A()
>>> type(a.__dict__)
<class 'dict'>
>>> type(A.__dict__)
<class 'mappingproxy'>

最佳答案

这有助于解释器确保类级属性和方法的键只能是字符串。

在其他地方,Python 是一种“同意成人语言”,这意味着对象的 dicts 由用户公开和可变。但是,在类的类级别属性和方法的情况下,如果我们可以保证键是字符串,我们可以简化和加速类级别的属性和方法查找的常见案例代码。特别是,通过假设类 dict 键是字符串,简化和加速了新型类的 __mro__ 搜索逻辑。

关于python - 为什么类 __dict__ 是映射代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32720492/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com