枚举Python中的属性

时间:2014-07-09 16:46:44

标签: java python parameters constructor enums

我是一名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);
        }
    }

}

1 个答案:

答案 0 :(得分:1)

正如Joram所说,你的星球示例是in the docs

如果您想知道如何向Enum添加普通常量,请查看this answer

哦,Enum has also been backported