如何正确调用内部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"
我想设置一个内部 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"