0

私はPythonを学んでいて、PyGameライブラリの境界を作っています。メソッドとクラスを自分の特定のプロジェクトにより適したものにしたいだけです。要するに、色の列挙を行いたいのですが、列挙の各値には RGB と Hex のバージョンがあります。以前に Java でこれを行ったことがあるので、Java 列挙型で何を意味するかを大まかに示します。

public enum Color {

    RED(new double[]{255, 0, 0}, "#ff0000"),
    CYAN(new double[]{0, 255, 255}, "#00e1ff");
    // Other colors...

    double[] rgb;
    String hex;

    Color(double[] rgb, String hex) {
        this.rgb = rgb;
        this.hex = hex;
    }

    public double[] getRGB() {
        return rgb;
    }

    public String getHex() {
        return hex;
    }
}

ここで行っているのは、列挙用のコンストラクター (Java ではデフォルトでプライベート) を作成し、列挙内の各項目でそのコンストラクターのパラメーターを指定することだけです。たとえば、RED は、rgb double 配列がコンストラクターを介して {255, 0, 0} に等しく、16 進文字列が "ff0000" であることを指定します。下部のメソッドを使用すると、これらの値をコードのどこからでも取得できます。

最後に、列挙をコードにインポートしてから RED アイテムを使用すると、RED.getRGB() と言って double 配列を取得できます。この列挙にたくさんの色を追加したいのですが、プログラムの他の部分にも適用されるため、一般的な構文も知りたいです。

これをPythonでやりたいです。私はPythonで通常の列挙型を作成することをほとんど理解しておらず、「class Clazz(Enum):」全体を理解していませんが、Pythonで上記のコードを実行する方法は確かにわかりません. 構文がわからないだけです。

4

1 に答える 1