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

How to call a variabe of an inner class correctly

我想设置一个内部 class 的值并从任何 class 中调用它。我对 (outer)class 使用相同的东西,值在 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()

但显示 returns 旧值。 如何使它正常工作?

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

除了 new.wheels() 每次调用时都会提供一个新实例之外,您还需要先获取 wheels 的一个新实例并将其设置为 wheel_color,然后创建另一个实例并检查它是 wheel_colors,但由于您尚未在 python 上设置实例变量,因此将求助于检查 class 变量 - 它仍然是 "grey"