python - 在枚举中显示可选成员

标签 python python-3.x enums

我使用 enum.Enum 类来限制用户可用的可选字段。

用于创建具有以下成员的枚举的代码:是,否,也许是:

from enum import Enum

my_enum = Enum('my_enum', 'Yes No Maybe')

使用 PyCharm 时,我希望用户在使用 my_enum 时能够看到可用成员(是、否、也许):

test = my_enum.Yes

相反,当按下点时,我看到以下内容:

enter image description here

我在选项中没有看到可选字段。

最佳答案

您遇到的问题是由于 Enum 成员是短暂的 - 这是一种奇特的方式来表示它们实际上并不作为类属性存在。*

但是,性能得到了增强(对于 Python 3.6 来说肯定如此,也可能在 Python 3.5 中也可能如此),它确实在可能的情况下(大多数情况下)将成员存储在类中。

换句话说,它应该很快就能发挥作用。

* 出于好奇,这些成员是由类级别的 __getattr__ 找到并返回的,这是在所有其他方法都失败后查找属性的最后努力;性能增强是继续将成员存储在类(class)中,以便更快地找到他们。

关于python - 在枚举中显示可选成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31509367/

相关文章:

python-3.x - 对 Tornado 使用elasticsearch_async

java - Android - 我们在 HashMap<MyEnum, String> 中使用 enum 作为键代替 String 是否合适?

python - Mechanize 浏览器超时不起作用

python - 保存 Python plasmoid 的配置

python - gtrends 包给出 "not enough search volume error"

java - 在 Java 中通过 ref 传递枚举

java - 在Java中按列表中的对象中的枚举和整数排序?

python - 如何在抓取网页时单击下一步按钮

python - 当第一个链接旁边包含特定关键字时无法获取第二个链接

python - 返回给定两点的直线方程的方法