识别PyCharm

时间:2018-07-17 18:02:24

标签: 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()

不幸的是,该类汽车未被识别。

要在驱动程序文件中识别汽车类,我该怎么做?

我想这很简单。抱歉,我的背景是强类型语言-C#。

PS:

即使我将Class Car与Driver放在同一文件夹中,也不会自动识别。我必须包括:

from Car import Car

因此,如果我有一个使用10个类的类(这在复杂的应用程序中不太常见),我是否真的必须包括10个import语句?我希望一个好的IDE可以识别同一项目中的类,而不必显式地导入它们。我是否缺少某些东西,或者在解释时是这样吗?

2 个答案:

答案 0 :(得分:0)

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

由于它位于子文件夹中,因此应使用间接导入,其中.是主模块,dirfoo1是目录,foo1是子模块名称。

from .dirfoo1.foo1 import Foo1

所以在你的情况下

from .Classes.Car import Car

答案 1 :(得分:0)

如果您在同一目录中有两个python脚本,即:

# first_script.py

def foo(): print("stuff")

然后您只需将第一个脚本导入到您正在处理的脚本中即可

# second_script.py
import first_script
first_script.foo()    # prints "stuff"

应该可以。当这些脚本位于不同的目录中时,它会变得更加复杂。如果它们位于不同的目录中,则在要从中提取目录的地方将需要__init__.py;我敢肯定。但是,除此之外,我不确定。

这使顺便说一句。因此,如果您有脚本a,b,c ... n,并且从b中提取了一个脚本,那么从c中提取了一个脚本,又从... n中提取了一个脚本,那么a也从n中提取了。