如何在同一目录或子目录中导入类?

2024-04-20 16:02:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个目录,它存储所有的.py文件。

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

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

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

Tags: 文件py目录binmainusrdirwhere
3条回答

我刚刚了解到(多亏了martineau's comment),为了从同一目录中的文件导入类,您现在可以用Python 3编写:

from .user import User
from .dir import Dir

在您的main.py中:

from user import Class

其中Class是要导入的类的名称。

如果要调用Class方法,可以使用以下方法调用它:

Class.method

注意,在同一目录中应该有一个空的__init__.py文件。

Python2

在文件所在的目录中创建一个名为__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

Python3

与前一个相同,但如果不使用子目录,则在模块名前面加上.

from .user import User
from .dir import Dir

相关问题 更多 >