在全局作用域解包Enum会增加内存占用吗?关于引用创建的疑问
Python Enum解包:仅创建引用的理解是否正确?
你的理解完全正确。
在Python中,Enum类的每个成员在类定义阶段就已经完成实例化了。当你执行A, B, C = MyEnum.A, MyEnum.B, MyEnum.C这样的赋值操作时,只是把对应Enum实例的引用赋值给了新的变量,并没有创建新的Enum实例对象。
换句话说,新变量A、B、C和MyEnum.A、MyEnum.B、MyEnum.C指向的是同一个内存对象,这种操作不会额外占用内存或生成重复实例。对你那种包含多个Enum(而非单个500行Enum)的模块来说,这种解包操作完全不会带来额外负担。
代码示例
# app/enums.py import enum class MyEnum(enum.Enum): A = 1 B = 2 C = 3 A, B, C = MyEnum.A, MyEnum.B, MyEnum.C
内容的提问来源于stack exchange,提问作者Jason Leaver
相关产品推荐
相关产品推荐

