我有一个存放所有.py文件的目录。

bin/
   main.py
   user.py # where class User resides
   dir.py # where class Dir resides

我想在main.py中使用user.py和dir.py中的类。 如何将这些Python类导入main.py? 此外,如果User .py在子目录中,我如何导入User类?

bin/
    dir.py
    main.py
    usr/
        user.py

当前回答

我刚刚了解到(感谢martineau的评论),为了从同一目录中的文件导入类,你现在可以在Python 3中写道:

from .user import User
from .dir import Dir

其他回答

from user import User 
from dir import Dir 

对于python3

from .user import用户 从侄子导入:从。usr。user import用户

Python 2

在与这些文件相同的目录中创建一个名为__init__.py的空文件。这将向Python表示“可以从此目录导入”。

那就…

from user import User
from dir import Dir

如果文件在子目录中,同样适用-在子目录中也放入__init__.py,然后使用点表示法的常规导入语句。对于每一层目录,都需要添加到导入路径中。

bin/
    main.py
    classes/
        user.py
        dir.py

如果目录名为“classes”,那么你会这样做:

from classes.user import User
from classes.dir import Dir

Python 3

和前面一样,但是模块名前面加了。如果不使用子目录:

from .user import User
from .dir import Dir

我不知道为什么这个工作,但使用Pycharm构建从file_in_same_dir导入class_name

IDE抱怨它,但它似乎仍然工作。我使用的是Python 3.7

Python3

use

from .user import User inside dir.py file

and

use from class.dir import Dir inside main.py
or from class.usr import User inside main.py

像这样