导入模块和包

导入模块

import的过程中发生了哪些事情?

  1. 寻找模块
  2. 如果找到,开辟一块空间,执行这个模块
  3. 把这个模块中用到的名字都收录到开辟的空间中
  4. 创建一个变量来引用这个模块的空间

注意:

  1. 模块不会被重复导入
  2. 模块和文件之间的内存空间始终是隔离的
  3. 模块名字必须符合变量命名规范
  4. 模块之间不能循环引用,即A中导入B, B中有导入A

模块搜索路径

​ 一个模块能否被导入,就看这个模块所在的目录是否在sys.path中

​ 正常的sys.path中除了内置、扩展模块所在的路径外,只有一个路径永远不会出问题,就是直接执行的这个文件所在的目录

模块和脚本

1. 直接运行时,为脚本,`__name__ = __main__`
2. 导入时,为模块, `__name__ = 模块名`

pyc文件

​ 提前编译好的字节码,只能提高程序的启动效率, 并不能提高程序的执行效率

dir(模块名)

​ 可以获取这个模块中的所有名字

导入包

什么是包?

​ 含有一个__init__.py的文件夹就是一个包,通常包中含有一些py文件

从包中导入模块

import导入

.的左面必须是一个包,终点必须是一个模块

from import导入

from glance2.api import policy
policy.get() from glance2.api.policy import get
get()

直接导入包

导入包的过程中发生了哪些事情?

​ 导入包,相当于执行了这个包的__init__.py文件

绝对导入

from glance2.api.versions import create_resource

相对导入

from ..cmd import manage

​ 运用了相对导入的文件不能被直接执行,即相对导入只能在包内部使用

python---导入模块和包的更多相关文章

  1. selenium + python自动化测试unittest框架学习(四)python导入模块及包知识点

    在写脚本的时候,发现导入某些模块,经常报错提示导入模块失败,这里来恶补下python导入模块的知识点. 1.模块导入时文件查找顺序 在脚本中,import xxx模块时的具体步骤: (1)新建一个mo ...

  2. python 导入模块、包

    1. 模块:一个有逻辑的python文件,包含变量.函数.类等.2. 包:一个包含__init__.py的文件夹,存放多个模块 import 本质是路径搜索,查找sys.path下有无你导入的 pac ...

  3. python导入模块和包的使用

    做项目的时候经常会要求做到模块化管理,即同样功能的代码放到同一个文件夹下,以便于方便管理,相信很多人对模块的引用都模糊不清,今天鄙人在这里就总结下. 一.模块导入的使用 在同一个文件夹下有两个文件分别 ...

  4. Python 3基础教程20-Python中导入模块和包

    本文介绍Python中导入模块和包 #目录: # 导入模块和包--- # | # 上级包.上级模块.导入模块和包的init模块----- # | # 同级包.同级模块.上级包的init模块.test模 ...

  5. Python之模块和包导入

    Python之模块和包导入 模块导入: 1.创建名称空间,用来存放模块XX.py中定义的名字 2.基于创建的名称空间来执行XX.py. 3.创建名字XX.py指向该名称空间,XX.名字的操作,都是以X ...

  6. python中模块,包,库的概念

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

  7. python中模块,包,库

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

  8. 转载 Python导入模块的几种姿势

    作为一名新手Python程序员,你首先需要学习的内容之一就是如何导入模块或包.但是我注意到,那些许多年来不时使用Python的人并不是都知道Python的导入机制其实非常灵活.在本文中,我们将探讨以下 ...

  9. Python中 模块、包、库

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

  10. 第10章 Python的模块和包

    前面几章介绍的Python基础知识,相关案例都是以单源代码文件为例来说明的,这种单源代码文件在Python中就是模块,每个模块文件都可以被其他应用导入,Python正是通过模块导入技术来实现很灵活的功 ...

随机推荐

  1. webug4.0 打靶笔记-02【完结】

    webug4.0打靶笔记-02 3. 延时注入(时间盲注) 3.1 访问靶场 3.2 寻找注入点 貌似一样的注入点: ?id=1' --+ 3.3 判断输出位置 同前两关一样的位置,时间盲注应该不是这 ...

  2. CF587F&CF547E题解

    这两道题好像啊 贡献一种使用SAM和ACAM草两道题的方法 下面假装有 \(O(\sum |S|=m)=O(n)\). 你看看,这CF换过多少个出题人啦?换汤不换药啦!其实这两道题是同一个人出的 CF ...

  3. Docker——容器数据卷

    为什么需要容器数据卷 角度:遇到问题,尝试以朴素的道理解决问题.问题复杂化,解决的方式也变得复杂 问题的提出:docker将应用和环境打包成一个镜像,但是对于容器内的数据,如果不进行外部的保存,那么当 ...

  4. Reverse Shell Cheat Sheet

    Reverse Shell Cheat Sheet If you're lucky enough to find a command execution vulnerability during a ...

  5. mysql备份灵活恢复

    mysql备份灵活恢复 服务上线遇到一个问题,开始操作前做了全库备份,但是没有做要操作的库备份,如果操作过程出现失败情况需要回退时,直接用全备文件做全库恢复很不妥当. 通过mysql的全备份文件,可以 ...

  6. python 函数基础知识

    1.函数返回的多个值会被组织成元组被返回,也可以用多个值来接收 2.调用函数时候,传入的参数叫实际参数,简称实参,定义函数的参数叫做形式参数,简称形参-- 位置参数 def mymax(x,y): a ...

  7. 通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?

    Dao接口即Mapper接口.接口的全限名,就是映射文件中的namespace的值:接口的方法名,就是映射文件中Mapper的Statement的id值:接口方法内的参数,就是传递给sql的参数. M ...

  8. Auth0案例学习(SpringMVC形式)

    官方SpringMVC示例Github:https://github.com/auth0-samples/auth0-spring-mvc-sample/tree/master/01-Login Ma ...

  9. 线程池提交任务的两种方式:execute与submit的区别

    Java中的线程池在进行任务提交时,有两种方式:execute和submit方法. 一.execute和submit的区别 execute只能提交Runnable类型的任务,无返回值.submit既可 ...

  10. (转载)mos管电压规格是什么,什么是VMOS管栅极

    电压规格:VDSS.VDS.BVDSS.V(BR)DSS VDSS中的"V"表示电压,前面的"D"."S"表示"Drain&quo ...