Python模块介绍
模块 1.模块定义
用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质上就是.py结尾python文件 分类:内置模块(又称标准库)执行 help('modules')查看所有python自带模块列表
第三方开源模块,可通过 pip install 模块名 联网安装
自定义模块 2.导入模块
本质:导入模块的本质就是把python文件解释一遍,
导入包的本质就是把包文件下面的init.py文件运行一遍。 1)同目录下模块的导入
#同级目录下模块的导入 import module_name #直接导入模块
import module1_name,module2_name #导入多个模块 使用:模块名.函数名
from modeule_name import * #导入模块中所有函数和变量等。。。不推荐使用
from modeule_name import m1,m2,m3 #只导入模块中函数m1,m2,m3 使用:直接使用m1,m2,m3就可以
from modeule_name import m1 as m #导入module_name模块中函数m1并且将函数重新复制给m 使用:直接用调用m 2)不同目录下模块的导入
#不同目录下模块的导入 当前文件main.py #目录结构
# ├── Credit_card
# │
# ├── core
# │ ├── __init__.py
# │ └── main.py # 当前文件
# ├── conf
# │ ├── __init__.py
# │ └── setting.py
# │ └── lzl.py import sys,os
#获取当前目录的上上级目录绝对路径,也就是Credit_card
credit_card_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#把Credit_card目录加入到系统路径
sys.path.insert(0,credit_card_path) #查看系统环境路径
print(sys.path) 例子:
如果main文件夹要用conf文件夹下的setting文件,直接导入是不行的
应该:
fron conf import setting
setting.函数名() #这样执行setting模块中的函数 3)不同目录下模块连环导入
#不同目录多个模块之间互相导入 #目录结构
# ├── Credit_card
# │
# ├── core
# │ ├── __init__.py
# │ └── main.py # 当前文件
# ├── conf
# │ ├── __init__.py
# │ └── setting.py
# │ └── lzl.py 如果在setting文件中调用模块lzl.py,可以用语句 import lzl,但是如果这样,
我们在main.py文件中调用setting文件时,就会报错#ImportError: No module named 'lzl'
这个时候我们需要将 import lzl 换为 from . import lzl
然后main.py文件中调用setting文件时,才可以正常执行。 4)不同目录多个模块相互导入,用相对路径 Root
├── Credit_card
├── README.md
├── core
│ ├── __init__.py
│ └── main.py
├── conf
│ ├── __init__.py
│ └── setting.py
│ └── lzl.py lzl.py文件内容:
def name():
print("name is lzl") setting.py文件内容:
#当前文件settings,调用lzl.py模块 相对路径
from . import lzl #通过相对路径导入模块lzl
def set():
print("in the settings")
lzl.name() #运行lzl模块下的函数 set() #执行函数set Core目录下的文件中的mian.py文件内容:
#不同目录之间连环import 当前文件main.py 相对路径 from Root.Credit_card.conf import settings
settings.set() #执行settings下的函数 注意:
lzl.py以及settings.py文件未变,main.py文件去掉了繁杂的sys.path添加的过程,
直接执行from Root.Credit_card.conf import settings,使用相对路径,更加
简洁方便!
Python模块介绍的更多相关文章
- python模块介绍- multi-mechanize 性能测试工具
python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...
- python模块介绍- xlwt 创建xls文件(excel)
python模块介绍- xlwt 创建xls文件(excel) 2013-06-24磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 ...
- python模块介绍- binascii 二进制和ASCII转换
python模块介绍-binascii二进制和ASCII转换 目录 项目简介 简介: Uu编码 Binhex编码 Base64编码 QP码 CRC校验和 二进制转换 其他实例 项目简介 Python中 ...
- python模块介绍- HTMLParser 简单的HTML和XHTML解析器
python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...
- python模块介绍-locustio:性能测试工具locustio
转自:http://automationtesting.sinaapp.com/blog/m_locustio_doc python测试文章 http://weibo.com/cizhenshi?is ...
- python成长之路【第十八篇】:python模块介绍、模块导入和重载
一.模块和命名空间 一般来说,Python程序往往由多个模块文件构成,通过import语句连接在一起.每个模块文件是一个独立完备的变量包,即一个命名空间.一个模块文件不能看到其他文件定义的变量名,除非 ...
- python模块介绍二。
全局变量 全局变量 python在一个.py文件内部自动添加了一些全局变量 print(vars()) #查看当前的全局变量 执行结果: {'__package__': None, '__loader ...
- python模块介绍- SocketServer 网络服务框架
来源:https://my.oschina.net/u/1433482/blog/190612 摘要: SocketServer简化了网络服务器的编写.它有4个类:TCPServer,UDPServe ...
- Python—模块介绍
什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码 ...
- python模块介绍- binascii:二进制和ASCII互转以及其他进制转换
20.1 binascii:二进制和ASCII互转作用:二进制和ASCII互相转换. Python版本:1.5及以后版本 binascii模块包含很多在二进制和ASCII编码的二进制表示转换的方法.通 ...
随机推荐
- matlab之细胞数组
学习matlab的一个博客:https://blog.csdn.net/smf0504/article/details/51814362 Matlab从5.0版开始引入了一种新的数据类型—细胞( ce ...
- python列表推导式的if-else
a=[i for i in range(10) if i%2==0]print(a)a=[i if i%2==0 else 'qi' for i in range(10)]print(a) 结果:[0 ...
- NOIP 2014【斗地主】
这真是道大火题. 因为保证数据随机,所以开始很多人直接用搜索 + 贪心水过去了,后来,为了遏制骗分这种不良风气的传播,各大 OJ 相继推出了斗地主加强版-- 正解: 先爆搜顺子,枚举打或不打,打多少张 ...
- python-函数用法
Python 一.lower() 方法转换字符串中所有大写字符为小写. lower()方法语法: str.lower() 参数 无. 返回值 返回将字符串中所有大写字符转换为小写后生成的字符串. 练习 ...
- Struts2与ServletAPI解耦
什么是与Servlet API解耦? 为了避免与servlet API耦合在一起,方便Action做单元测试, Struts2对HttpServletRequest,HttpSession,和Serv ...
- hdu 6006
HDU - 6006 Engineer Assignment 我参考了这份题解. 贴上我比较拙的代码,留念一下. /** * 想到状态压缩的dp问题就解决了一半. */ #include <st ...
- listen 62
The Hangover I'm never drinking again. And this time I mean it! Anyone who's suffered through a bad ...
- codeforces 659F F. Polycarp and Hay(并查集+bfs)
题目链接: F. Polycarp and Hay time limit per test 4 seconds memory limit per test 512 megabytes input st ...
- 【Python】numpy 数组拼接、分割
摘自https://docs.scipy.org 1.The Basics 1.1 numpy 数组基础 NumPy’s array class is called ndarray. ndarray. ...
- bzoj 4310 跳蚤 —— 后缀数组+二分答案+贪心
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4310 二分答案——在本质不同的子串中二分答案! 如果二分到的子串位置是 st,考虑何时必须分 ...