python开发调用基础:模块和包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python开发调用基础:模块和包相关的知识,希望对你有一定的参考价值。

一,包的调用

 1 #!/usr/bin/env python
 2 #_*_coding:utf-8_*_
 3 
 4 #调用 glance[1..4]\api\policy.py  路径
 5 # policy.py 内容
 6 # def one():
 7 #     print(‘this first!‘)
 8 
 9 # 1.glance1里面什么都没有写,只有plicy这个模块写了个方法,导入了具体的模块
10 # from glance1.api import policy       导入绝体模块
11 # policy.one() #模块的方法
12 
13 # 绝对路径的调用方式,注意init文件,目录下都需要写
14 # import glance2
15 # glance2.api.policy.one()   目录下的模块方法都能找到
16 # glance2\__init__.py        from glance2 import api
17 # glance2\api\__init__.py    from glance2.api import policy
18 
19 # 相对路径的调用方式,注意init文件,与绝对路径相比就是.的用法
20 # import glance3
21 # glance3.api.policy.one()    #目录下的模块方法都能找到
22 # glance3\__init__.py        from . import api
23 # glance3\api\__init__.py    from . import policy
24 
25 # 相对路径的调用不需要你去点点,直接就可以调用模块的方法,注意init文件,
26 # 用的是impor * 和 all的匹配使用
27 # import glance4
28 # glance4.policy.one()
29 # glance4\__init__.py        from .api import *
30 # glance4\api\__init__.py    __all__ = [‘policy‘]

 

二,模块的调用

 1 #!/usr/bin/env python
 2 #_*_coding:utf-8_*_
 3 
 4 #一个py文件就可以作为一个模块
 5 #模块的导入:直接导入文件的名字,不需要带着后缀
 6 #模块中的函数调用:模块名.函数名()
 7 
 8 #模块导入的时候做了三件事:
 9 #首先 开辟了一个新的命名空间 my_moudle
10 #执行my_moudle内的代码
11 #将my_moudle里面的名字都和my_moudle绑定在一起
12 
13 #模块在一个程序中只会被导入一次,不会被重复导入
14 #为了节约资源
15 #如何实现的?
16 #导入一个模块之后,会将模块存储在内存中
17 #当再次导入的时候,就到内存中去查看是否导入过这个模块,如果导入了就不继续导入
18 
19 #导入的模块有自己的命名空间
20 #当你给一个模块起了别名的时候,就产生了一个命名空间,这个命名空间只和别名相关
21 
22 # from ... import ... 这种形式是导入什么模块就用什么模块的方法
23 # import 模块  这个被import的模块把自己的全局导入进来
24 
25 #参数问题,导入的模块,再被调用时候可以传参
26 
27 #from 模块 import *
28 #首先会把模块当中所有不是‘_’开头的内容导入进来
29 #还可以通过__all__来控制可以导入的内容
30 #但是 以上两条只和 * 有关
31 
32 # if __name__ == ‘main‘:函数名   调用和本身相对独立,调用者需要导入模块后调用函数名()执行,不会执行整个模块内容
33 # import * 和 __all__ = [‘模块名‘]   all限制了调用者可以使用哪些变量和方法

 

以上是关于python开发调用基础:模块和包的主要内容,如果未能解决你的问题,请参考以下文章

python基础14 ---函数模块5(模块和包)

基础入门_Python-模块和包.运维开发中inspect自省模块的最佳实践?

python之模块和包

python之模块和包

盘点Python常用的模块和包

基础入门_Python-模块和包.运维开发中内建模块getopt的最佳实践?