模块的定义:

用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质上就是.py结尾的python文件。

包的定义:

用来从逻辑上组织模块的,本质上就是一个目录。(必须有一个__init__.py文件)

导入模块方法:

1、创建模块

比如创建一个 module_name.py ,里面可以定义函数和变量。

2、导入模块

导入一个:

import module_name

导入多个:

import module_name,import module_name1

导入一个模块所有的方法或变量:

from module_name import *

from module_name import 方法名 [ as 别名]

from module_name import 方法名1 [ as 别名1],方法名2 [ as 别名2].。。。

from..import.. 这种方法比 直接import 模块 要执行的快,因为不需要点语法调用方法,所以也不需要每次调用每次都去找那个模块文件。

3、使用模块的变量或方法

1、直接 import module_name 导入进来的

module_name.变量名 或 module_name.方法名 。这种相当于把 module_name.py中的代码解释一遍统一赋值给一个变量。

2、from module_name import 方法名 [ as 别名] 这种方法导入进来的

可以直接使用。变量名、方法名、  别名。这个相当于把代码复制一份到新文件里面。所以不需要点语法调用。

导入包方法:

import package_name

导入这个包实际上在执行包里面的__init__.py文件

import本质(路径搜索)

模块导入:

import module_name -->找到module_name.py文件 --->找到module_name.py的路径 --->sys.path中(第一个空的是当前目录)依次寻找。

如果sys.path中没有要找的路径,意思是要导入的模块文件不再同一个目录,需要通过sys和os模块把要导入的模块的路径加入到sys.path中

1、通过os.path.abspath(__file__) 获取当前文件路径。

2、通过os.path.dirname(os.path.abspath(__file__)) 找到上级路径。直到找到模块所在的路径下。

3、追加到sys.path路径下 sys.path.append(要添加的路径)。

包导入:

1、首先导入一个包 也是import ,那么实际执行的动作是执行包里的__init__.py这个文件。

2、包里面肯定定义了很多模块,不然只执行这个文件没有意义。这个文件的作用就是把模块的导入写到这个文件里面。from . import module_name 导入当前路径下的哪个模块。

3、调用某个包下的某个模块下的某个方法:package_name.module_name.方法

4、如果包的目录和程序的目录不一致,可以先加载包的最外层目录到sys.path,然后 from dir_name import package_name

python模块介绍和 import本质的更多相关文章

  1. python模块介绍- multi-mechanize 性能测试工具

    python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...

  2. python模块介绍- xlwt 创建xls文件(excel)

    python模块介绍- xlwt 创建xls文件(excel) 2013-06-24磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 ...

  3. python模块介绍- binascii 二进制和ASCII转换

    python模块介绍-binascii二进制和ASCII转换 目录 项目简介 简介: Uu编码 Binhex编码 Base64编码 QP码 CRC校验和 二进制转换 其他实例 项目简介 Python中 ...

  4. python模块介绍- HTMLParser 简单的HTML和XHTML解析器

    python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...

  5. python模块介绍-locustio:性能测试工具locustio

    转自:http://automationtesting.sinaapp.com/blog/m_locustio_doc python测试文章 http://weibo.com/cizhenshi?is ...

  6. python成长之路【第十八篇】:python模块介绍、模块导入和重载

    一.模块和命名空间 一般来说,Python程序往往由多个模块文件构成,通过import语句连接在一起.每个模块文件是一个独立完备的变量包,即一个命名空间.一个模块文件不能看到其他文件定义的变量名,除非 ...

  7. Python模块介绍

    模块 1.模块定义 用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质上就是.py结尾python文件 分类:内置模块(又称标准库)执行 help('modules')查看所 ...

  8. python模块介绍二。

    全局变量 全局变量 python在一个.py文件内部自动添加了一些全局变量 print(vars()) #查看当前的全局变量 执行结果: {'__package__': None, '__loader ...

  9. python模块介绍- SocketServer 网络服务框架

    来源:https://my.oschina.net/u/1433482/blog/190612 摘要: SocketServer简化了网络服务器的编写.它有4个类:TCPServer,UDPServe ...

随机推荐

  1. 2018北京网络赛D 80days (尺取)

    #1831 : 80 Days 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 80 Days is an interesting game based on Jules ...

  2. UICollectionView Layout自定义 Layout布局

    from:   http://www.tuicool.com/articles/vuyIriN 当我们使用系统自带的UICollectionViewFlowLayout无法实现我们的布局时,我们就可以 ...

  3. sublime中设置view_in_browser

    使用package control 管理的view-in-browser插件,用户可以在浏览器中打开任意当前sublime Text中tab所处的文件,例如html.js等. 1.Ctrl+Shift ...

  4. Qt 学习之路 2(5):自定义信号槽

    Home / Qt 学习之路 2 / Qt 学习之路 2(5):自定义信号槽 Qt 学习之路 2(5):自定义信号槽  豆子  2012年8月24日  Qt 学习之路 2  131条评论 上一节我们详 ...

  5. 1001 害死人不偿命的(3n+1)猜想 (15)(15 分)

    卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1.卡拉兹在1950年的世界数 ...

  6. POJ2686 Traveling by Stagecoach(状压DP)

    题意: 有一个旅行家计划乘马车旅行.他所在的国家里共有m个城市,在城市之间有若干道路相连.从某个城市沿着某条道路到相邻的城市需要乘坐马车.而乘坐马车需要使用车票,每用一张车票只可以通过一条道路.每张车 ...

  7. 页面布局常用,让子级div排排坐

    画页面的时候经常遇到页面布局的问题,父级div包裹多个子div很常见,代码如下: <div> <div style='width:100px;height: 100px;backgr ...

  8. 毕业设计 python opencv实现车牌识别 界面

    主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https://github.com/yinghualuow ...

  9. SpringMVC中的视图和视图解析器

    对于控制器的目标方法,无论其返回值是String.View.ModelMap或是ModelAndView,SpringMVC都会在内部将它们封装为一个ModelAndView对象进行返回.  Spri ...

  10. strchr和strstr函数

    二者都属于c的库函数   包含在<string.h>函数中 不同的是 : strchr是查找单个字符在串中出现的位置 strstr查找的是字符串在串中出现的位置 看代码: //strchr ...