1、什么是模块

模块就是一个.py的文件

2、为什么要使用模块?

最开始的程序(没有任何组织)----> 函数------>类----->模块------>包  为了让程序的组织结构更加灵活清晰,降低耦合性、方便管理;

3、如何使用模块

1、import:只能导入在当前目录、和内置的模块,使用模块里的内容需要 模块.来调用;

2、from...import:可以导入不是同级目录的模块,导入模块之后,可以直接调用模块里的内容;

3、导入模块做的3件事情

#导入模块第一件事情 创建名称空间,用来存放模块文件中定义的名字

#第二件事情基于刚刚创建的名称空间,找执行一遍模块文件里的内容

#第三件事情spm.操作名称空间模块里的内容

4、模块的搜素路径

总结模块的查找顺序是:内存中已经加载的模块--------->内置模块------------>sys.path路径中包含的模块(sys.path包含当前目录)

二、包

1、什么是包?

包是一种通过使用‘.模块名’来组织python模块名称空间的方式。本质就一个包含__init__文件的目录

无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都是关于 包才有的导入语法

from .auth.plugins.core import create,UserAuthInfo
# 在 .(当前路径)auth(auth包).plugins(包).core(模块) import( create,UserAuthInfo)属性 .左边的都是包 最后一个可以是模块

  

2、使用包

import  (import包名.包名.包名.最后是模块)

import glance.db.models
glance.db.models.register_models('mysql')

from (包名.包名)... import ...(import后面的是模块)

from bao.bao1 import *

如果import后面不指定一个模块名,只会执行包下的__init__文件

会执行包下的__init__文件定义的__all__=[x,y.z]的内容

from glance.db import models
models.register_models('mysql') from glance.db.models import register_models
register_models('mysql')

3、包里的__init__.py文件

#在其他模块 导入import keystone包的时候,会首先执行keystone包下的__init__文件。
# 如果在__init__文件导入了auth.(包)plugins.(包)core(模块) import create,UserAuthInfo(方法)
# 那么 import keystone 就可以直接执行 keystone子包下的 模块和模块里的方法了

4、绝对导入和相对导入

绝对导入:以glance 作为起始

相对导入:用.或者..的方式最为起始(只能在一个包中使用,不能用于不同目录内)

在glance/api/version.py

#绝对导入
from glance.cmd import manage
manage.main() #相对导入
from ..cmd import manage
manage.main()

5、单独导入

#在与glance同级的test.py中
import glance
glance.cmd.manage.main() '''
执行结果:
AttributeError: module 'glance' has no attribute 'cmd' '''

Python模块和包使用的更多相关文章

  1. Python/模块与包之模块

    Python/模块与包之模块 1.什么是模块? 模块就是py文件 2.为什么要用模块? 如果在解释器上进行编码,把解释器关闭之前写的文件就不存在了,如果使用模块的话就能永久保存在磁盘中. 3.如何使用 ...

  2. Python模块、包、异常、文件(案例)

    Python模块.包.异常.文件(案例) python.py #模块 # Python中的模块(Module),是一个Python文件,以.py文件结尾,包含了Python对象定义和Python语句, ...

  3. 【Python】解析Python模块与包

    模块 模块是非常简单的Python文件,单个Python文件就是一个模块,两个文件就是两个模块. import语句是用来导入模块或者从模块里导入特定的类或者函数.如前面我们用过的math模块,从而可以 ...

  4. python 模块和包深度学习理解

    python 模块和包 简单说相当于命名空间 1,python 模块        python模块就是一个文件,里面有函数,变量等 import 模块 模块.方法 from 模块 import fu ...

  5. (三)运用Python模块和包

    1 引言 为了能够在Python项目中高效地运用Python模块和包,我们需要进一步地来了解它们是如何在Python项目中进行定义.使用和工作的. 2 Python模块和包 Python模块和包的基本 ...

  6. Python模块04/包/logging日志

    Python模块04/包/logging日志 目录 Python模块04/包/logging日志 内容大纲 1.包 2.logging日志 3.今日总结 内容大纲 1.包 2.logging日志 1. ...

  7. Python模块和包

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

  8. python模块与包的导入

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

  9. python模块及包的导入

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

  10. 简述Python模块和包

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

随机推荐

  1. 【Web Service】

    Restful: (Representational State Transfer  表现层[指客户端]状态[指服务器端]转化) RPC: RPC 风格的开发关注于服务器/客户端之间的方法调用, 而并 ...

  2. 【BZOJ】3295: [Cqoi2011]动态逆序对

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3295 mamaya,弱鸡xrdog终于会写树套树啦.... 将树状数组中每一个节点看成一棵 ...

  3. Educational Codeforces Round 3 D. Gadgets for dollars and pounds 二分+前缀

    D. Gadgets for dollars and pounds time limit per test 2 seconds memory limit per test 256 megabytes ...

  4. 【十六】php 面向对象

    __set()方法: 语法: function __set($property, $value) { //$property接收的属性的名字 //$value接收的是属性的值 } 1 class Em ...

  5. P1330 封锁阳光大学

    传送门 思路: 依题意可知,在图中的每一条边有且只有一个点被选中(阻止老曹刷街),那么就可以对其采取二分图染色,一条边中:一个点为黑色,另一个点为白色:如果一条边中的两个端点的颜色相同,则说明无解,输 ...

  6. Windows下的Python 3.6.1的下载与安装(适合32bits和64bits)(图文详解)

    不多说,直接上干货! 为什么,这么简单的一个python,我还要特意来写一篇博客呢? 是因为留念下,在使用了Anaconda2和Anaconda3的基础上,现在需安装python3.6.0来做数据分析 ...

  7. 基于python Arcface 实现人脸检测和识别

    虹软的人脸识别技术也是很强的,重要的是他免费提供了离线的sdk,还提供了实例,这个是目前几家研究人脸识别的大公司里面少有的.识别能力正常用还是可以的.我这个代码是调用的离线sdk实现的 ``` fro ...

  8. (转)Qt中图片相对位置的引用

    原文作者:locky1218 原文地址:https://blog.csdn.net/locky1218/article/details/9749703/   一般使用相对位置的时候可能无法显示图片,可 ...

  9. centos7【防火墙】常用规则

    1.防火墙常用规则 systemctl start iptables systemctl stop iptables systemctl restart iptablesiptables -nvL 1 ...

  10. Python 编程快速上手 第十五章 保持时间,计划任务和启动程序

    前言 这一章节的主要内容是: 处理时间类型的数据(使用python 的两个模块: time 和 datetime 来处理) 创建多个线程 (使用 threading 模块来创建多个线程) 进行多个进程 ...