国外有趣的网站,做网站多少费用,100个创新产品,广州公司注册代理机构调用同级目录#xff1a;
– src
|– mod.py
|– test.py
若在程序test.py中导入模块mod, 则直接使用
import mod
或
from mod import *
调用子目录下的模块#xff1a;
– src
|– mod.py
|– lib
| |– mod2.py
|– test.py
from lib.mod2 import *
或
import lib.mod2
调用…调用同级目录
– src
|– mod.py
|– test.py
若在程序test.py中导入模块mod, 则直接使用
import mod
或
from mod import *
调用子目录下的模块
– src
|– mod.py
|– lib
| |– mod2.py
|– test.py
from lib.mod2 import *
或
import lib.mod2
调用上级目录下的文件
目录结构如下
– src
|– mod.py
|– lib
| |– mod2.py
|– sub
| |– test2.py
import sys
sys.path.append(C:\\test\\A\\C)
import mod
import lib.mod2
__init__.py
在python模块的每一个包中都有一个__init__.py文件这个文件定义了包的属性和方法然后是一些模块文件和子目录假如子目录中也有__init__.py 那么它就是这个包的子包了。当你将一个包作为模块导入比如从 xml 导入 dom 的时候实际上导入了它的__init__.py 文件。
一个包是一个带有特殊文件 __init__.py 的目录。__init__.py 文件定义了包的属性和方法。其实它可以什么也不定义可以只是一个空文件但是必须存在。如果 __init__.py 不存在这个目录就仅仅是一个目录而不是一个包它就不能被导入或者包含其它的模块和嵌套包。
__init__.py 中还有一个重要的变量叫做__all__。
如果此时目录如下
– src
|– mod.py
|– lib
| |– mod2.py
| |– mod3.py
| |– sub
| |– | |– mod3.py
我们有时会使出一招“全部导入”也就是这样
from lib import *
这时 import 就会把注册在包__init__.py 文件中 __all__ 列表中的子模块和子包导入到当前作用域中来。比如
#文件__init__.py
__all__ [mod2, mod3, sub]
总结
对于其余路径下载py文件要想导入先加到sys.path中然后再导入。
__init__.py的作用
package的标识不能删除
定义package中的__all__用来模糊导入
编写Python代码(不建议在__init__中写python模块可以在包中在创建另外的模块来写尽量保证__init__.py简单
总结
以上所述是小编给大家介绍的python基础之包的导入和__init__.py的介绍希望对大家有所帮助如果大家有任何疑问请给我留言小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持