Python 在另一个类的方法中访问该类变量时获取该类变量的NameError
实际上,我想创建一个类“car”的实例,并想在另一个类的方法中使用该对象。由于“carObj”是“fourWheeler”类的一个类变量,所以我们可以在所有方法之前定义并使用它。这是我经过几节教程后得到的理解。但为什么我会在这里得到这个错误。我只是想了解。任何建议/建议都会对我大有帮助Python 在另一个类的方法中访问该类变量时获取该类变量的NameError,python,python-3.x,object,Python,Python 3.x,Object,实际上,我想创建一个类“car”的实例,并想在另一个类的方法中使用该对象。由于“carObj”是“fourWheeler”类的一个类变量,所以我们可以在所有方法之前定义并使用它。这是我经过几节教程后得到的理解。但为什么我会在这里得到这个错误。我只是想了解。任何建议/建议都会对我大有帮助 class car: def __init__(self,name, mileage): self.__name = name self.__mileage = milea
class car:
def __init__(self,name, mileage):
self.__name = name
self.__mileage = mileage
def SpeedDetails(self):
print("Top Speed : 140")
print("Avg speed : 80")
class fourWheeler:
carObj = car('Honda', 20)
def Vehicletype():
print(carObj)
def VehicleSpeed():
carObj.SpeedDetails()
if __name__ == '__main__':
vehicle = fourWheeler
vehicle.Vehicletype()
vehicle.VehicleSpeed()
运行脚本后出现的错误:
ssh://root@kick-bgl-caas6.cisco.com:41114/kick/bin/python -u /tmp/pycharm_project_977/Test.py
Traceback (most recent call last):
File "/tmp/pycharm_project_977/Test.py", line 20, in <module>
vehicle.Vehicletype()
File "/tmp/pycharm_project_977/Test.py", line 13, in Vehicletype
print(carObj)
**NameError: name 'carObj' is not defined**
ssh://root@kick-bgl-caas6.cisco.com:41114/kick/bin/python-u/tmp/pycharm_project_977/Test.py
回溯(最近一次呼叫最后一次):
文件“/tmp/pycharm_project_977/Test.py”,第20行,在
vehicle.Vehicletype()
文件“/tmp/pycharm_project_977/Test.py”,第13行,车辆类型
打印(carObj)
**NameError:未定义名称“carObj”**
将您的错误添加为注释
class car:
def __init__(self,name, mileage):
self.__name = name
self.__mileage = mileage
def SpeedDetails(self):
print("Top Speed : 140")
print("Avg speed : 80")
class fourWheeler:
carObj = car('Honda', 20)
def Vehicletype(self): #missed self here
print(self.carObj)
def VehicleSpeed(self): #missed self here
self.carObj.SpeedDetails()
if __name__ == '__main__':
vehicle = fourWheeler() # use constructor
vehicle.Vehicletype()
vehicle.VehicleSpeed()
读一读《谢谢克里斯》。成功了。但添加“self”使其成为一个正确的实例变量。请澄清我的问题。也只是以防万一,构造函数调用不存在。那我们怎么才能访问“carObj”。因为在我的项目中,“fourWheeler”没有任何参数(零arg)调用。在这个场景中,我该如何证明。您使用self-inside构造函数创建的任何变量都将成为实例。其他变量是类变量,您可以使用self或类名访问这些变量。