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开发调用基础:模块和包的主要内容,如果未能解决你的问题,请参考以下文章