模块和包—Day28
一、模块
模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。
import的过程:import一个模块的时候,首先创建一个属于my_module的内存空间,加载my_module模块中的所有代码,将my_module中的名字和方法放在my_module的命名空间里,引用时将my_module带到当前名称空间中,用my_module.名字的方式使用。import模块名。
模块导入的原则:
1.如果不是必要的需求,所有的模块都有应该在文件的顶端倒入。
2.关于导入模块的顺序:先导入内置模块,再导入扩展模块,最后导入自定义模块。
3.模块不会被多次导入
导入多个模块:import a,b,c
为模块名起别名:import...as ....用于选择不同的模块来执行同一个功能
例:有两种摘要算法,json和pickle,根据输入选择用其中一个
inp = input('json or pickle>>>')
if inp == 'ison':
import ison as m
elif inp == 'pickle':
import pickle as m
m.dumps({'k':'v'})
m.loads()
from...import...过程:创建一个属于my_module的名称空间,将my_module中的名字直接导入到引用模块的文件的名称空间中,在文件中直接使用my_module中的名字。from模块名import模块中的方法。

from...import...可以导入多个名字,也可以起别名,和import用法一样。
from模块import* 会默认把模块中所有的名字都导入到全局,和__all__一起使用
__all__ = ['a','A','func1'] #from 模块名import*时只能导入[]里面的内容
把模块当作脚本执行
如果一个py文件被导入了就是一个模块,如果这个py文件直接被执行了,这个被执行的文件就是一个脚本。
当一个模块被当做脚本执行的时候,__name__是一个字符串数据类型的‘__main__’。
当一个模块被当做模块倒入的时候,__name__是一个字符传数据类型模块名。
if __name__ == '__main__': #可以用来控制.py文件在不同的应用场景下执行不同的逻辑
编译python文件
一个文件如果作为模块会经常被导入,每次被导入都要经历一个被编译的过程,编译时会耗费时间,所以模块在第一次导入的时候被编译存在pyc文件里,之后的导入就可以直接用pyc文件中的字节码直接执行了。编译文件提高的是模块加载速递,不能提高程序运行速度。
二、包
包就是py文件的集合。
包的导入也分为两种:import和from...import...,凡是在导入时带点的,点的左边都必须是一个包
from a.b.c import d d.get() #abc都是包
import a.b.c.d a.b.c.d.get() #abc都是包
能不能导入一个包要看sys.path的路径下有没有这个包
模块和包—Day28的更多相关文章
- python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...
- Python中函数、类、模块和包的调用
初学python阶段,大多数人对函数.类.模块和包的调用都搞得不是很清楚,这篇随笔就简单的进行说明. (1)函数 当函数定义好之后,可以直接调用. 比如:def summ(add1,add2),那么 ...
- Python模块和包
模块和包是python组织代码的基本方式. 模块: python的每一个脚本文件都可称之为模块,模块的名称就是脚本的文件名.例如当我们写了一个test.py的脚本文件,则可以在同目录下的另外一个脚本m ...
- python模块与包的导入
1. 模块与包的区别 模块,即module,一个包含python语句的.py文件就是一个模块!每个源代码文件都会自动成为模块!没有额外的语法用来声明模块. 包,又称模块包,即module packag ...
- python模块及包的导入
一.模块 通常模块为一个文件,直接使用import来导入就好了.可以作为module的文件类型有".py".".pyo".".pyc".&q ...
- 简述Python模块和包
我们常常会使用别人写的包,假如我们使用的是Python3.4版本,安装在windows的C盘根目录下,那么外部的包一般放在:C:\Python34\Lib\sit-packages下,此目录下有以.p ...
- python 深入模块和包
模块可以包含可执行语句以及函数的定义. 这些语句通常用于初始化模块. 它们只在 第一次 导入时执行.只在第一次导入的时候执行,第一次.妈蛋的第一次...后面再次导入就不执行了. [1](如果文件以脚本 ...
- Python中的模块与包
标准库的安装路径 在import模块的时候,python是通过系统路径找到这些模块的,我们可以将这些路径打印出来: >>> pprint.pprint(sys.path) ['', ...
- Python类、模块、包的区别
类 类的概念在许多语言中出现,很容易理解.它将数据和操作进行封装,以便将来的复用. 模块 模块,在Python可理解为对应于一个文件.在创建了一个脚本文件后,定义了某些函数和变量.你在其他需要这些功能 ...
随机推荐
- 不会一致性hash算法,劝你简历别写搞过负载均衡
大家好,我是小富~ 个人公众号:程序员内点事,欢迎学习交流 这两天看到技术群里,有小伙伴在讨论一致性hash算法的问题,正愁没啥写的题目就来了,那就简单介绍下它的原理.下边我们以分布式缓存中经典场景举 ...
- [硬件]USB TYPE C引脚定义
- Java异常理解之Exception in thread “main“ java.lang.ArrayIndexOutOfBoundsException
这个异常是Java中的数组越界问题 当你使用不合法的索引访问数组是会出现这种错误例如: class Solution { public static int climbStairs(int n) { ...
- Ultimaker2+使用指南
USB打印 使用最新的官方软件即可进行USB3D打印. 使用时在选项上进行预热以及x,y,z重新归零定位,每次开始都要做. SD卡打印 比较方便,因为电脑可能拿去做其他事情. 打印机堵塞 退出耗材时候 ...
- 用Cesium可视化地下设施、矿山和地质层
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 本月的CesiumJS 1.70发布引入的一项关键改进是地下数据 ...
- python3 .format()函数
Python 3.5.2实验 >>> print('{0},{1}'.format('kzc',18) ) kzc,18 >>> print('{},{}'.for ...
- jenkins pipeline设置
转:https://mp.weixin.qq.com/s/MwyBsUWUQASGMr_erGfzZA
- 学习Java第3天
今天所做的工作: 1.循环结构 2.字符串 3.数组 4.面向对象概述 明天工作安排: 1.类和对象 2.包装类 所遇到的问题及解决方法: 1.循环foreach语句 2.字符串初始化与c++的差异 ...
- react 配置使用less后缀文件
//安装less less less-loader npm install less less-loader --save-dev 安装完成后,在项目中的config目录下找到webpack.conf ...
- 基础学习:关于this在派生类构造函数中的理解
https://www.cnblogs.com/Bear-Study-Hard/archive/2006/01/09/313551.html 看了上面这篇文章有感,特做了个小样板,以加深对于this在 ...