Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何正确调用内部类的变量_Python_Variables_Inner Classes - Fatal编程技术网

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

Python 如何正确调用内部类的变量,python,variables,inner-classes,Python,Variables,Inner Classes,我想设置一个内部类的值,并从任何类中调用它。我对(outer)类使用了相同的东西,set def中的值发生了更改,但在该函数之外,它看起来像是没有更改 我的代码如下所示 class car(vehicle): __vehicle_kind = "car" __nb_of_wheels = 4 __nb_of_doors = 2 def showKind(self): return self.__vehicle_kind def show

我想设置一个内部类的值,并从任何类中调用它。我对(outer)类使用了相同的东西,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()
但该节目将返回旧值。
如何使其正确工作

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


除此之外,
new.wheels()
将在每次调用时提供一个新实例,您首先获取
wheels
的一个新实例,并将其设置为
wheel\u color
,然后创建另一个实例并检查其
wheel\u colors
,但是,由于尚未在该python上设置实例变量,因此将求助于检查类变量,该类变量仍然是灰色的。主要问题是您混淆了类和实例变量/成员。
wheel\u color=“grey”
是一个类变量,适用于
wheel
的所有实例,而
self.wheel\u color=color
是指仅适用于该特定实例的实例变量


除此之外,
new.wheels()
将在每次调用时提供一个新实例,您首先获取
wheels
的一个新实例,并将其设置为
wheel\u color
,然后创建另一个实例并检查其
wheel\u colors
,但是,既然您没有在python上设置实例变量,那么python将求助于检查类变量,它仍然是
“grey”

,首先不要将“private”视为python中的任何东西。车轮
汽车
都是
车辆
的衍生物,这对我来说没有意义。你能不能给
车辆
类提供代码,或者解释一下它背后的逻辑(车轮是如何成为车辆的?)首先不要把“private”看作Python中的任何东西。
车轮
汽车
都是
车辆
的衍生物,这对我来说毫无意义。您是否可以给出
车辆
类的代码或解释其背后的逻辑(车轮是如何成为车辆的?)