首页 > 解决方案 > 识别 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 的解释一样吗?

标签: pythonpycharm

解决方案


显而易见的答案是使用 import 并导入您自己的模块。

因为它在子文件夹中,所以您应该使用间接导入,.您的主模块在哪里 dirfoo1 是您的目录 foo1 是您的子模块名称。

from .dirfoo1.foo1 import Foo1

所以在你的情况下

from .Classes.Car import Car

推荐阅读