python - 识别 PyCharm 子文件夹中的类
问题描述
在 PyCharm 中,我有一个这样的类:
class Car:
def __init__(self):
self.speed = 0
def say_state(self):
print("I'm going {} kph!".format(self.speed))
def increase_speed(self, increase):
self.speed += increase
位于名为 Classes 的子文件夹中。
我有驱动程序 python 文件,它只包含:
if __name__ == '__main__':
my_car = Car()
my_car.say_state()
my_car.increase_speed(2)
my_car.say_state()
不幸的是,类 Car 无法识别。
我必须做什么才能在驱动程序文件中识别 Car 类?
我想这是一个简单的。抱歉,我的背景是强类型语言 - C#。
PS:
即使我将我的类 Car 与 Driver 放在同一个文件夹中,它也不会自动识别。我必须包括:
from Car import Car
因此,如果我有一个使用 10 个类的类,这在复杂的应用程序中并非不可能,我真的必须包含 10 个导入语句吗?我希望一个好的 IDE 可以识别同一个项目中的类,而不必显式地导入它们。我是否遗漏了某些东西,或者这与 Python 的解释一样吗?
解决方案
显而易见的答案是使用 import 并导入您自己的模块。
因为它在子文件夹中,所以您应该使用间接导入,.
您的主模块在哪里 dirfoo1 是您的目录 foo1 是您的子模块名称。
from .dirfoo1.foo1 import Foo1
所以在你的情况下
from .Classes.Car import Car
推荐阅读
- web-services - 允许将 CSR 导入 Microsoft CA 并接收证书的 API
- javascript - 从数组中创建树并将父字段的表示更改为对象而不是 ID
- microsoft-graph-api - microsoft graph api中的用户唯一身份
- android - 未知属性'manifestOutputDirectory'
- json - 关于 Flutter Firestore Rest Api Json 输出
- python - SymPy:简单表达式“a1*a2+a1*a3+a1*a4+a4*a2”的因式分解
- sql-server - 日期时间范围之间的分组值
- javascript - 如何在类转换器上获取无效类型/类型不匹配的警告/错误列表
- cakephp - CakePHP 4.x hasMany foreach
- excel - 从多个 Excel 文件中提取数据并粘贴使用转置和链接 (VBA)