Я изучаю Python и делаю границы для библиотеки PyGame. В этом нет ничего плохого, я просто хочу сделать методы и классы более подходящими для моего проекта c. Короче говоря, я хочу сделать перечисление цветов, но каждое значение в перечислении имеет версии 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;
}
}
Все, что я делаю здесь, это создание конструктора (по умолчанию private) в Java) для перечисления и создания каждого элемента в перечислении укажите параметры в этом конструкторе. RED, например, указывает, что двойной массив rgb через конструктор равен {255, 0, 0}, а шестнадцатеричная строка - "ff0000". С помощью методов внизу вы можете получить эти значения в любом месте кода.
В конце концов, если я импортирую перечисление в код, а затем использую элемент RED, я могу сказать RED.getRGB ( ) и получить двойной массив. Я хочу добавить несколько цветов в это перечисление, но я также хочу знать синтаксис для этого в целом, потому что он применяется к другим частям моей программы.
Я хочу сделать это в Python. Я с трудом понимаю, как создавать регулярные перечисления в Python, и не понимаю всего, что касается класса Clazz (Enum): но я, конечно, не знаю, как сделать код, приведенный выше в Python. Я просто не знаю синтаксис.