一、模块

模块就是一个包含了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. Linux驱动实践:中断处理函数如何【发送信号】给应用层?

    作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++.嵌入式.Linux. 关注下方公众号,回复[书籍],获取 Linux.嵌入式领域经典书籍:回复[PDF],获取所有原创文章( PDF 格式). ...

  2. 基本的sql语法

    1. SELECT: 用于从数据库中选取数据 SELECT name,value FROM table_name 2.SELECT DISTINCT 语句用于返回唯一不同的值(去重) 3.WHERE ...

  3. JAVA多线程之并发编程三大核心问题

    概述 并发编程是Java语言的重要特性之一,它能使复杂的代码变得更简单,从而极大的简化复杂系统的开发.并发编程可以充分发挥多处理器系统的强大计算能力,随着处理器数量的持续增长,如何高效的并发变得越来越 ...

  4. Docsify使用指南(打造最快捷、最轻量级的个人&团队文档)

    前言 网上关于动态文档生成工具有很多如:Docsify. VuePress.Docute .Hexo这些都是一些非常优秀的文档生成工具,本章主要介绍如何快速使用Docsify搭建一个快捷.轻量级的个人 ...

  5. 白嫖党的福音!!!全新的Java300集视频(2022版)来了!

    它来了它来了,经过一年时间的沉淀, [尚学堂]高淇Java300集完整版正式发布啦! 应广大网友和尚学堂忠实的孜孜学子以及听众朋友的要求,尚学堂在去年十月份就把预计在2022年发布的Java300集提 ...

  6. VictoriaMerics学习笔记(1):翻译官方广告

    先看看VictoriaMetrics官网网站上是如何作(tree)宣(new)传(bee)的: 官方广告 0.(监控领域)最快解决方案 为高性能而设计 便于安装 支持单机和群集版本 1.更高效的存储空 ...

  7. 推荐召回--基于用户的协同过滤UserCF

    目录 1. 前言 2. 原理 3. 数据及相似度计算 4. 根据相似度计算结果 5. 相关问题 5.1 如何提炼用户日志数据? 5.2 用户相似度计算很耗时,有什么好的方法? 5.3 有哪些改进措施? ...

  8. VS code远程连接Linux 开发C++ 配置详细介绍

    VS code 远程连接服务器,编译C++ 一.前期准备 1.VS code安装 Remote-SSH插件 2.Windows安装SSH. 3.Linux服务器连接测试. a.接通测试使用ping命令 ...

  9. gin中模型的绑定和验证

    要将请求体绑定到结构体中,使用模型绑定. Gin目前支持JSON.XML.YAML和标准表单值的绑定(foo=bar&boo=baz). Gin使用 go-playground/validat ...

  10. xargs、管道、exec区别

    作者:ilexwg链接:https://www.zhihu.com/question/27452459/answer/170834758来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...