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

(编码以获取)Python代码完成,从允许的字符串列表中进行选择,python,code-completion,Python,Code Completion,假设一个简单的函数: def example(formula="") ... 其中,参数公式应为2400个可能的化学公式之一。 从2400个字符串的列表中选择一个字符串,是否有一种方法可以完成代码 第一个想法是从类属性列表中选择。 但是,我不能使用dir方法。 这些公式字符串通常不能用作属性名称 我没有看到另一种方法可以列出一个选项而不使用某个属性 谢谢您正在尝试从字符串列表中获取随机字符串吗 from random import choice formulas = ['f1',

假设一个简单的函数:

def example(formula="")
    ...
其中,参数公式应为2400个可能的化学公式之一。 从2400个字符串的列表中选择一个字符串,是否有一种方法可以完成代码

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

我没有看到另一种方法可以列出一个选项而不使用某个属性


谢谢

您正在尝试从字符串列表中获取随机字符串吗

 from random import choice

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

如果不是,那么简单地索引公式[int]就可以了

使用枚举,例如PyCharm实例代码就很好地完成了枚举,特别是在使用类型暗示的情况下

import enum

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


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

代码完成是编辑器或编码环境的一项功能。你能指定你用的是哪一个吗?我的目标是Jupyter,但我也用PyCharm。我想两者都是从看方向开始的。对不起,我的问题不清楚。我会很高兴完成参数代码。但我也会很满意类属性代码的完成。这就解释了我对"迪尔"的评论。我不知道选择参数可能值的类似方法。枚举不需要逗号。事实上,他们会将值转换为元组,这对于这样一个简单的解决方案来说是不必要的。我在Jupyter的一个简单示例上测试了它,这将非常有用。我只是不认为需要enum.enum,因为它在Jupyter中也可以不使用。只有一个缺点:我需要为数据库中的2400个公式自动创建有效属性,这一点并不明显。我已经修复了逗号。我不需要随机选择。我需要这些东西来完成我的案子。我不明白你的建议。是的,我想,你似乎找到了答案: