Python之模块与包
来源:互联网 发布:mac怎么切换输入法拼写 编辑:程序博客网 时间:2024/05/16 04:58
1、本地模块(自己创建的模块)
#! encoding:utf-8 -*-# 模块应用一import sysimport md # 先找到本地文件模块解释一遍print(sys.path) # ['/media/liu/软件/python-learn/day20', '/usr/lib/python35.zip',# '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload',# '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages'] 环境变量路径print(md.a)print(md.s(3,4))print(md.m(10,5))# 模块应用 二from md import s,m,a # 从本地模块加载指定函数,不全部加载print(s(6,6))print(m(3,1))print(a)# 模块应用 三from md import * # 加载完全本地模块,但如果当前定义了一个重复的函数名,会覆盖模块里的函数print(s(5,6))print(m(9,3))print(a)# 模块应用 四from md import s as jia # 为模块里的函数改名字print(jia(7,3))# print(__file__) # 显示当前文件
#! -*- encoding:utf-8 -*-# md.py 这个是上面调用的本地模块def s(x,y): return x+ydef m(x,y): return x-yprint('OK')a = 100
2、包调用
#! -*- encoding:utf-8 -*-# 一级包from web import loggerlogger.logger()# 二级包from web.web2 import loggerlogger.logger()# 只调用当前包里的某个函数from web.web2.logger import loggerlogger()# 如果只调用包,则会只会执行__init__.py ,不会加载包里面的模块,如果在这里面写入调用该包里的模块,也是有效的import web
#! -*- encoding:utf-8 -*-# web包下面的logger.py模块def logger(): print('web1')
#! -*- encoding:utf-8 -*-# web下面的__init__.py模块print('web d')
#! -*- encoding:utf-8 -*-# web2下面的logger.py模块def logger(): print('web2')
模块包就是在文件夹里有个__init__.py文件,这个文件夹就是包。调用时,包必须在同一级目录。解释器是根据sys.path函数的模块搜寻路径来找模块的。
下面是调用不同级目录里模块的办法
#! -*- encoding:utf-8 -*-import sys,osbase_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 手动获取当前文件的绝对路径的上上级目录sys.path.append(base_path) # 把当前文件的上上级目录放到模块查找路径里,就可以调用不在同一级目录的模块了 from mudule import main,loggermain.main() # logging:调用成功
#! -*- encoding:utf-8 -*-# mudeleb包下的main.py模块from mudule import logger # 此处注意:虽然main.py跟logger.py在同一级目录里,但调用这两个模块是在其他目录执行的,所以这个要写清 # 其他目录的模块调用这里的模块时,就相当于在其他目录该代码了,所有要写来自来自哪个包def main(): logger.logger()
#! -*- encoding:utf-8 -*-# mudule包下面的logger.py模块def logger(): #功能模块 print('logging:调用成功')
3、测试当前模块功能的写法
#! -*- encoding:utf-8 -*-# if __name__=='__main__' 对当前文件执行的代码def hello(): print('hello')if __name__=='__main__': # 程序会判断是否在当前模块运行的,是就执行下面代码 print('其他模块在调用本模块时,这里的代码是不会执行的')
阅读全文
0 0
- Python之模块与包
- python之 模块与包
- Python学习之模块与包
- Python基础之包与模块
- python模块与包
- Python 模块与包
- python 模块与包
- python 模块与包
- python模块与包
- python模块与包
- python---模块与包
- python-模块与包
- python 模块与包
- Python-------模块与包
- python学习笔记(四)之模块与包
- Python中的模块与包
- Python中的模块与包
- Python中的模块与包
- A1131. 最大公约数和最小公倍数问题(Tsinsen)
- React Native用CodePush实现热更新
- 回溯法-5.5.2 n皇后问题之迭代法
- Mac安装MySQL后,设置初始密码
- 配置supervisor出现的错误
- Python之模块与包
- Linux文件系统之三:硬链接和软链接
- 关于block的OC
- Android源码设计模式解析与实战之二单例模式
- 2017-12-04 Xilinx U471-IOB文档学习&总结(2):io primitives
- 多项式轨迹--五次多项式轨迹
- 杭电ACM OJ 1036 Average is not Fast Enough! 水的么简直就不谈了!(只是题目意思有点难理解)
- Javaweb-myeclipse开发Servlet的几点细节说明
- 摄氏和华氏的互相转换