如何正确调用内部类的变量

时间:2016-06-16 10:47:37

标签: python variables inner-classes

我想设置一个内部类的值,并从任何类中调用它。我对(外部)类使用相同的东西,值在set def中被改变,但在该函数之外,它就像是没有改变。

我的代码看起来像这样

class car(vehicle):
    __vehicle_kind = "car"
    __nb_of_wheels = 4
    __nb_of_doors = 2

    def showKind(self):
        return self.__vehicle_kind

    def showNbOfWheels(self):
        return self.__nb_of_wheels

    def showNbOfDoors(self):
        return self.__nb_of_doors

    class wheels(vehicle):
        wheel_color = "grey"
        wheel_diametre = "16"

        def setWheelColor(self, color):
            self.wheel_color = color
            print self.wheel_color

        def showWheelColor(self):
            return self.wheel_color

我设置并使用:

调用showWheelColor
new.wheels().setWheelColor(wheel_color)
print new.wheels().showWheelColor()

但该节目返回旧值。 如何使这项工作正常?

1 个答案:

答案 0 :(得分:0)

您的示例有一些问题。主要问题是您混淆了类和实例变量/成员。 wheel_color = "grey"是一个适用于wheel所有实例的类变量,而self.wheel_color = color是指仅适用于该特定实例的实例变量。

除了new.wheels()每次调用时都会提供新实例的事实,您首先会采用wheels的新实例并设置它wheel_color wheel_colors 1}}然后创建另一个实例并检查它"grey",但是因为你没有在那个python上设置实例变量,所以需要检查类变量 - 它仍然是{{1 }}