2017-10-19 12 views
0

のリストから選択するPythonのコード補完を(得るためにコーディング)は、簡単な関数を想定します。 2400文字列のリストから1つの文字列を選択するコード補完を得る方法はありますか?許容文字列

最初のアイデアは、クラス属性のリストから選択することでした。 しかし、ディレクトリ()メソッドを使用することはできません。 これらの数式文字列は、属性名として使用できないことがよくあります。

何かの属性を使用せずに選択肢をリストする別の方法はありません。

ありがとうございました

+0

コード補完は、エディタまたはコーディング環境の機能です。どちらを使用しているのかを指定できますか? –

+0

私のターゲットはJupyterですが、PyCharmも使用しています。私は両方の_dir_()を見て開始すると思います。 –

+0

申し訳ありませんが、私の質問は明確ではありませんでした。私は議論コードの完成に満足しています。しかし、私はクラス属性のコード補完にも満足しています。これは_dir_()に関する私のコメントを説明しています。私は、議論の可能な値を選ぶためのアナログを知らない。 –

答えて

1

特に、タイプヒントを使用する場合は、インスタンスコードのPyCharmがうまく完了するenumを使用します。

import enum 

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


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

enumsはカンマを必要としません。実際には、値はタプルに変換されますが、これは望ましくありません。 – Felk

+0

このような単純な解決策をお寄せいただきありがとうございます。私はJupyterの簡単な例でそれをテストしました。これは便利です。私はちょうどenum.Enumの必要性を見ていないJupyterでも動作します。 1つの欠点のみ:データベースの2400式に対して有効な属性を自動的に作成する必要がありますが、これはあまり明らかではありません。 –

+0

私はカンマを修正しました。 –

0

文字列のリストからランダムな文字列を取得しようとしていますか?

from random import choice 

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

、単にインデックス化されていない場合(formulas[int])は、トリックを行う必要があります。

+0

ランダムな選択は必要ありません。私は私の場合に有用な完成品を得るために必要なものがあります。私はあなたの提案を理解していません。 –

+0

ええ、あなたは答えを見つけたようです: – Exa

関連する問題