Python 中的枚举和属性

Mak*_*iev 5 python java parameters enums constructor

我是一名 Java 开发人员,但现在正在开发一个 Python 项目。是否可以编写一个其构造函数具有属性的枚举?

我会用Java这样做。

public class Main {

    private enum Planet {
        MERCURY(3.303e+23, 2.4397e6),
        VENUS(4.869e+24, 6.0518e6),
        EARTH(5.976e+24, 6.37814e6),
        MARS(6.421e+23, 3.3972e6),
        JUPITER(1.9e+27, 7.1492e7),
        SATURN(5.688e+26, 6.0268e7),
        URANUS(8.686e+25, 2.5559e7),
        NEPTUNE(1.024e+26, 2.4746e7);

        private final double mass; // in kilograms
        private final double radius; // in meters

        Planet(double mass, double radius) {
            this.mass = mass;
            this.radius = radius;
        }

        @Override
        public String toString() {
            return super.toString() + " radius: " + radius + ", mass: " + mass;
        }
    }

    public static void main(String[] args) {
        for (Planet planet : Planet.values()) {
            System.out.println(planet);
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

Eth*_*man 3

正如 Joram 指出的,您的 Planet 示例位于docs 中

如果您想知道如何向 an 添加普通常量Enum,请查看此答案

哦,而且Enum 还被向后移植了