(编码获取)Python 代码完成以从允许的字符串列表中选择

(coding to get) Python code completion to choose from a list of allowable strings

假设一个简单的函数:

def example(formula="")
    ...

其中参数 "formula" 应该是 2400 个可能的化学式之一。 从 2400 个字符串的列表中选择一个字符串是否有一种方法可以完成代码?

第一个想法是从 class 属性列表中进行选择。 但是,我不能使用 dir() 方法。 这些公式字符串通常不能用作属性名称。

我没有看到另一种方法可以在不使用某些东西的属性的情况下列出一个选项。

谢谢

您是否尝试从字符串列表中获取随机字符串?

 from random import choice

 formulas = ['f1', 'f2']
 formula = choice(formulas)
 example(formula = formula)

如果没有,那么简单的索引 (formulas[int]) 应该可以解决问题。

使用枚举,PyCharm 例如代码可以很好地完成,特别是如果您使用类型提示。

import enum

class ChemFormula(enum.Enum):
    Chlorine = "cl2"
    Hydrogen = "h2"
    Water = "h2o"


def example(formula: ChemFormula) -> None:
    ....