一、模块

模块就是一个包含了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的更多相关文章

  1. python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...

  2. Python中函数、类、模块和包的调用

    初学python阶段,大多数人对函数.类.模块和包的调用都搞得不是很清楚,这篇随笔就简单的进行说明. (1)函数 当函数定义好之后,可以直接调用. 比如:def summ(add1,add2),那么 ...

  3. Python模块和包

    模块和包是python组织代码的基本方式. 模块: python的每一个脚本文件都可称之为模块,模块的名称就是脚本的文件名.例如当我们写了一个test.py的脚本文件,则可以在同目录下的另外一个脚本m ...

  4. python模块与包的导入

    1. 模块与包的区别 模块,即module,一个包含python语句的.py文件就是一个模块!每个源代码文件都会自动成为模块!没有额外的语法用来声明模块. 包,又称模块包,即module packag ...

  5. python模块及包的导入

    一.模块 通常模块为一个文件,直接使用import来导入就好了.可以作为module的文件类型有".py".".pyo".".pyc".&q ...

  6. 简述Python模块和包

    我们常常会使用别人写的包,假如我们使用的是Python3.4版本,安装在windows的C盘根目录下,那么外部的包一般放在:C:\Python34\Lib\sit-packages下,此目录下有以.p ...

  7. python 深入模块和包

    模块可以包含可执行语句以及函数的定义. 这些语句通常用于初始化模块. 它们只在 第一次 导入时执行.只在第一次导入的时候执行,第一次.妈蛋的第一次...后面再次导入就不执行了. [1](如果文件以脚本 ...

  8. Python中的模块与包

    标准库的安装路径 在import模块的时候,python是通过系统路径找到这些模块的,我们可以将这些路径打印出来: >>> pprint.pprint(sys.path) ['', ...

  9. Python类、模块、包的区别

    类 类的概念在许多语言中出现,很容易理解.它将数据和操作进行封装,以便将来的复用. 模块 模块,在Python可理解为对应于一个文件.在创建了一个脚本文件后,定义了某些函数和变量.你在其他需要这些功能 ...

随机推荐

  1. angularJS中$digest already in progress报错解决方法

    看到一个前端群里有人问,就查了下解决"$digest already in progress"最好的方式,就是不要使用$scope.$apply()或者$scope.$digest ...

  2. 展示html/javascript/css------Live-Server服务器

    Live-server简介 这是一款带有热加载功能的小型开发服务器.用它来展示你的HTML / JavaScript / CSS,但不能用于部署最终的网站. 官网地址:https://www.npmj ...

  3. 阅读阿里Java开发手册记录

    概述 在阅读完阿里Java开发手册(嵩山版)后,发现自己在开发过程中有一些没有按照规范开发的情况,这里将容易忘记的规范记录下来,并且添加自己的理解,一方面方便自己巩固记忆,另一方面希望对其他同学能够提 ...

  4. 带你玩转Flink流批一体分布式实时处理引擎

    摘要:Apache Flink是为分布式.高性能的流处理应用程序打造的开源流处理框架. 本文分享自华为云社区<[云驻共创]手把手教你玩转Flink流批一体分布式实时处理引擎>,作者: 萌兔 ...

  5. Java 异步 I/O

    Java 中的异步 I/O 简称 AIO, A 即 Asynchronous.AIO 在 JDK1.7 时引入,基于操作系统提供的异步 I/O 通信模型,封装了一些进行异步 I/O 操作的 API. ...

  6. i-Urban Renovation使用3D Tiles可视化鸟取县Munakata建筑状态

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 日本的鸟取县,使用i-Urban Renovation appl ...

  7. vue-cli创建的项目打包成app引入字体图标的问题

    将项目在手机端调试时,发现引入的阿里图标显示不出来,需要在引入的iconfont.css文件夹里给url加上https

  8. 基于 SSR 的预渲染首屏直出方案

    基于 SSR 的预渲染首屏直出方案 Create React Doc 是一个使用 React 的 markdown 文档站点生成工具.此前在 Create React Doc 中引入了预渲染技术来预先 ...

  9. 这个命令行HTTP客户端工具真不错

    程序员专属微信红包封面1000个,兑换码:dWK7fUs2WQG cURL相信很多做开发的.运维的都不陌生,是非常有用的一个终端请求工具,借助于它可以在命令行中进行HTTP.FTP等请求,在Linux ...

  10. 实用的linux 命令

    1. 查看当前文件夹下文件或文件夹所占磁盘的大小 du -sh *|sort -rh 2. 查找某个进程号,脚本或程序所在目录的方法 ll /proc/进程id 3. awk 的用法 (1)累加: a ...