gpt4 book ai didi

python - 属于一个类的变量定义

转载 作者:太空宇宙 更新时间:2023-11-04 01:54:08 25 4
gpt4 key购买 nike

我刚开始学习 python(来自 C);我发现自己对属于一个类的变量的定义方式感到非常困惑(不管是“类类型”还是“实例类型”,我的问题更基本)。到目前为止,我已经尝试了这些代码行:

class A:
pass

A.a = 1
A.b = 2
print(A.a+A.b)

这段代码出乎意料地返回了“3”(而我预计会出现错误),这将我带到了这里。我不明白为什么解释器能够推断出属于类“A”的变量(我从未定义过)。

最佳答案

从 C 的角度来看,假设 Python 属性存储在哈希表中,因此可以在运行时动态修改和查询。

考虑一下:

class A:
pass

print(A.__dict__)
{'__module__': '__main__', '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None}

当你修改 A 时,你正在修改它的 __dict__ member :

A.a = 1

print(A.__dict__)
{'__module__': '__main__', '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None, 'a': 1}

注意它现在如何包含 a

print(A.__dict__['a'])
1

关于python - 属于一个类的变量定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57289792/

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