我有一个存放所有.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

当前回答

在main.py中:

from user import Class

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

如果你想调用Class的一个方法,你可以使用:

Class.method

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

其他回答

Python 3


相同的目录中。

导入文件:log.py

导入类:SampleApp()。

import log
if __name__ == "__main__":
    app = log.SampleApp()
    app.mainloop()

or

目录是最基本的。

导入文件:log.py。

导入类:SampleApp()。

from basic import log
if __name__ == "__main__":
    app = log.SampleApp()
    app.mainloop()

太简单了, 创建一个文件__init__.py是类目录,然后像下面这样将它导入到你的脚本中(导入所有大小写)

from classes.myscript import *

只导入选定的类

from classes.myscript import User
from classes.myscript import Dir

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

from .user import User
from .dir import Dir

如果您不想将函数和类与您的模块混合,您可以导入模块并通过其名称访问它

import util # imports util.py

util.clean()
util.setup(4)

或者可以将函数和类导入到代码中

from util import clean, setup
clean()
setup(4)

您可以使用wildchar *将该模块中的所有内容导入到代码中

from util import *
clean()
setup(4)

从同一目录导入

from . import the_file_you_want_to_import 

要从目录应包含的子目录导入

init.py

那就别写你的文件了

从目录导入your_file