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编码的二进制表示转换的方法.通 ...
随机推荐
- python_opencv库的学习
一.以灰度图的形式加载彩色图像. https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_image_display/py_image_ ...
- bjwc Day1 暴力大战
今天终于有题了... 题目是COCI2016/2017 Round #4 T1一看就是NP问题,k<=50,开始想暴力,想了个n^4的,大概能过,就没去管它 T2想得太naive,丢了100分给 ...
- kettle导数删除并插入更新数据_20161130
这里有3个表 仅是时间维度不同 天 周 月,现在需要把昨天数据每天添加进入这3个表 由于业务上会有退货等情况,因此需要先把这些表原来的部分数据删除 再从那个时间点进行更新. 天需要先删除前7天的数据, ...
- MySQL三个列组成唯一值查询_开源中国问题练习_20161026
问题地址:https://www.oschina.net/question/2923955_2202674 按 service_collect_day分类以后,按 app_id,node_id,ser ...
- 【算法模板】Binary Search 二分查找
模板:(通用模板,推荐) 给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1. ...
- SHOI2001化工厂装箱员——记忆化搜索
题目:https://www.luogu.org/problemnew/show/P2530 太弱了不会用DP,于是暴搜: 每次传进一个数组c记录当前状态各种物品有多少个,枚举取哪种物品,返回最小值, ...
- java计算两个时间相差(天、小时、分钟、秒)
public static Long dateDiff(String startTime, String endTime, String format, String str) { // 按照传入的格 ...
- PPI协议详解 ppi通讯协议 ppi通信协议 vb与ppi协议通讯
转自:http://blog.csdn.net/vbvcde/article/details/7660497 我们提供 PPI协议的官方文档,协议更新时间为2005年,下面是我们根据文档解析的PPI读 ...
- java---集合类(1)
java.util包中包含了一系列重要的集合类.而对于集合类,主要需要掌握的就是它的内部结构,以及遍历集合的迭代模式. 接口:Collection Collection是最基本的集合接口,一个Coll ...
- MFC获取数据的方式
假设输入框ID是:ID_NUMBER1,ID_NUMBER2,ID_NUMBER3. 获取数据的方式是: int number1,number2,number3; number1 = GetDlgIt ...