Python 在另一个类的方法中访问该类变量时获取该类变量的NameError

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

实际上,我想创建一个类“car”的实例,并想在另一个类的方法中使用该对象。由于“carObj”是“fourWheeler”类的一个类变量,所以我们可以在所有方法之前定义并使用它。这是我经过几节教程后得到的理解。但为什么我会在这里得到这个错误。我只是想了解。任何建议/建议都会对我大有帮助

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或类名访问这些变量。