Python 名称错误:名称';汽车';没有定义

Python 名称错误:名称';汽车';没有定义,python,python-3.x,Python,Python 3.x,不确定获取名称的原因错误:未定义名称“Automobile”。 也许有人在过去的20分钟里没有注意到这一点可以帮上忙。我开始认为可能是缩进,但还不太确定 vehicles.py: class Automobile: def __init__(self, make, model, mileage, price): self.__make = make self.__model = model self.__mileage = mileage

不确定获取名称的原因错误:未定义名称“Automobile”。 也许有人在过去的20分钟里没有注意到这一点可以帮上忙。我开始认为可能是缩进,但还不太确定

vehicles.py:

class Automobile:

    def __init__(self, make, model, mileage, price):
        self.__make = make
        self.__model = model
        self.__mileage = mileage
        self.__price = price

    def set_make(self, make):
        self.__make = make

    def set_model(self, model):
        self.__model = model

    def set_mileage(self, mileage):
        self.__mileage = mileage

    def set_price(self, price):
        self.__price = price

    def get_make(self):
        return self.__make

    def get_model(self):
        return self.__model

    def get_mileage(self):
        return self.__mileage

    def get_price(self):
        return self.__price

    class Car(Automobile):

        def __init__(self, make, model, mileage, price, doors):

            Automobile.__init__(self, make, model, mileage, price)

            self.__doors = doors

        def set_doors(self, doors):
            self.__doors = doors

        def get_doors(self):
            return self.__doors
car_demo.py:

import vehicles

def main():
    used_car = vehicles.Car("Audi", 2007, 12500, 21500.00, 4)

    print('Make:', used_car.get_make())
    print('Model:', used_car.get_model())
    print('Mileage:', used_car.get_mileage())
    print('Price:', used_car.get_price())
    print('# of doors:', used_car.get_doors())

main()
错误:

Traceback:
import vehicles, class Automobile:, and class Car(Automobile)

NameError: name 'Automobile' is not defined
我本以为将Automobile设置为一个类定义了“Automobile” 任何帮助都将不胜感激


我使用的是Python3.5.2 IDLE

我假设您不是有意将
Car
类缩进
Automobile
中。您应该将该类取消缩进一级,而不是:

Automobile.__init__(self, make, model, mileage, price)
你应使用:

super(Car, self).__init__(make, model, mileage, price)
如果您使用的是Python 3,您只需执行以下操作:

super().__init__(make, model, mileage, price)

我想您不是有意将
Car
类缩进
Automobile
中。您应该将该类取消缩进一级,而不是:

Automobile.__init__(self, make, model, mileage, price)
你应使用:

super(Car, self).__init__(make, model, mileage, price)
如果您使用的是Python 3,您只需执行以下操作:

super().__init__(make, model, mileage, price)

尝试使用车辆导入汽车的
,然后访问汽车类别您的意思是在汽车内部缩进汽车类别吗?@Bobby No dice。仍然得到相同的错误。哪个错误?请包含完整的错误信息和回溯(或者这太容易了;-P)啊,并更正你问题中的缩进。@denvaar我现在真的很想把头发扯下来。我没听清楚。谢谢!尝试使用车辆导入汽车的
,然后访问汽车类别您的意思是在汽车内部缩进汽车类别吗?@Bobby No dice。仍然得到相同的错误。哪个错误?请包含完整的错误信息和回溯(或者这太容易了;-P)啊,并更正你问题中的缩进。@denvaar我现在真的很想把头发扯下来。我没听清楚。谢谢!令人惊叹的。谢谢你的提示。实际上,考虑到它是Python 3代码,最好是:
super()。没有arg
super
很好。@ShadowRanger感谢您的编辑。我在争论是否应该在代码块中进行回溯。看起来干净多了,太棒了。谢谢你的提示。实际上,考虑到它是Python 3代码,最好是:
super()。没有arg
super
很好。@ShadowRanger感谢您的编辑。我在争论是否应该在代码块中进行回溯。看起来干净多了。