Python 3 を学習し、コードの一部を Java から Python 3.3 に変換しているときに、修正できない小さな問題に遭遇しました。
Javaでは、次のコードがあります(小さくするためのダミーコードのみ):
public enum Mapping {
C11{public int getMapping(){ return 1;}},
C12{public int getMapping(){ return 2;}},
public abstract int getMapping();
}
String s = "C11";
System.out.println(Mapping.valueOf(s))
正常に動作し、必要な '1' が出力されます。これを Python で実行しようとすると、(まだ) 簡単には動作しません。私は列挙型を模倣しようとしました:
class Mapping:
C11=1
C12=2
s = 'C11'
print(Mapping.Mapping.(magic should happen here).s)
残念ながら、文字列をそのように呼び出される属性に変換する方法がわかりません(または同様のもの)。クラス Mapping に巨大なリストがあり、テキスト ファイルから読み取った一見ランダムな単語を整数マッピングに変換する必要があるため、これが必要です。