如何解决尽管能够从同一模块导入不同的类,但无法在导入的模块中找到类
我使用的是 Python 3.9.6,我正在学习如何从 Python 书籍中导入类。我有一个包含几个类和一个子类的文件。我可以使用 import car
然后访问 Car
类而没有任何问题。但是,如果我尝试访问同一个文件 ElectricCar()
中的子类,我会得到一个 ImportError
。
我不认为这可能是 PATH 问题,因为我可以毫无问题地访问 Car
。我正在关注作者能够做到这一点的示例问题,所以我试图理解为什么它对我不起作用。
这有效:
from car import Car
myTesla = Car('tesla','model s',2019)
但这不会:
from car import ElectricCar
myTesla = ElectricCar('tesla',2019)
当我尝试导入 ElectricCar 时出现此错误:
Traceback (most recent call last):
File "C:/Users/marchy/AppData/Local/Programs/Python/python39/Scripts/myElectricCar.py",line 1,in <module>
from car import ElectricCar
ImportError: cannot import name 'ElectricCar' from 'car' (C:\Users/marchy/AppData/Local/Programs/Python/python39/Scripts\car.py)
这是包含我试图访问的两个类的 car.py
的内容:
'''A set of classes that can be used to represent gas and electric cars.'''
class Car:
'''A simple attempt to represent a car.'''
def __init__(self,make,model,year):
'''Initialize attributes to describe a car.'''
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0 # attribute with default value = 0
def get_descriptive_name(self):
'''Return a neatly formatted descriptive name.'''
long_name = f'{self.year} {self.make} {self.model}'
return long_name.title()
class Battery:
'''A simple attempt to model a battery for an electric car.'''
--snip--
class ElectricCar(Car):
'''Represent aspects of a car,specific to electric vehicles.'''
def __init__(self,year):
'''Initialize attributes of the parent class.
Then initialize attributes specific to an electric car.
'''
super().__init__(make,year)
self.battery = Battery()
解决方法
是的,我犯了一个愚蠢的错误。我有一个名为 car.py 的单独文件,其中不包含 ElectricCar 类。我进口车的时候,我进口的是没有ElectricCar的版本。
,您发布的代码应该可以工作。检查您是否有另一个名为 car.py
的文件没有 ElectricCar
类,因为您可能从该文件导入了类。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。