python模块介绍和 import本质
模块的定义:
用来从逻辑上组织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本质的更多相关文章
- python模块介绍- multi-mechanize 性能测试工具
python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...
- python模块介绍- xlwt 创建xls文件(excel)
python模块介绍- xlwt 创建xls文件(excel) 2013-06-24磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 ...
- python模块介绍- binascii 二进制和ASCII转换
python模块介绍-binascii二进制和ASCII转换 目录 项目简介 简介: Uu编码 Binhex编码 Base64编码 QP码 CRC校验和 二进制转换 其他实例 项目简介 Python中 ...
- python模块介绍- HTMLParser 简单的HTML和XHTML解析器
python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...
- python模块介绍-locustio:性能测试工具locustio
转自:http://automationtesting.sinaapp.com/blog/m_locustio_doc python测试文章 http://weibo.com/cizhenshi?is ...
- python成长之路【第十八篇】:python模块介绍、模块导入和重载
一.模块和命名空间 一般来说,Python程序往往由多个模块文件构成,通过import语句连接在一起.每个模块文件是一个独立完备的变量包,即一个命名空间.一个模块文件不能看到其他文件定义的变量名,除非 ...
- Python模块介绍
模块 1.模块定义 用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质上就是.py结尾python文件 分类:内置模块(又称标准库)执行 help('modules')查看所 ...
- python模块介绍二。
全局变量 全局变量 python在一个.py文件内部自动添加了一些全局变量 print(vars()) #查看当前的全局变量 执行结果: {'__package__': None, '__loader ...
- python模块介绍- SocketServer 网络服务框架
来源:https://my.oschina.net/u/1433482/blog/190612 摘要: SocketServer简化了网络服务器的编写.它有4个类:TCPServer,UDPServe ...
随机推荐
- Python字符串拼接、格式化输出、深浅复制
1.Python字符串拼接:方法挺多.挺好用的.灵活使用可使代码简洁.可读性好. #1.用4种方法,将列表li = ['I','python','like'], #里面的单词拼成: I**like** ...
- poj3040 发工资(贪心)
题目传送门 题目大意:给一个人发工资,给出不同数量不同面额,(大面额一定是小面额的倍数),问最多能发几天,(每天实发工资>=应发工资). 思路:首先,将大于等于c的面额的钱直接每个星期给奶牛一张 ...
- 关于string 的简单应用
声明||作用 string类本不是STL的容器,但是它与STL容器有着很多相似的操作,因此,把string放在这里一起进行介绍. 之所以抛弃char*的字符串而选用C++标准程序库中的string类, ...
- FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
官网:http://ffmpeg.org 一.FFmpeg安装 安装依赖包: yum install libtheora-devel libvorbis-devel 1 FFmpeg编译安装: 由于系 ...
- HttpClient,Socket,URL知识
java中: tip/ip , udp 传输协议 网络编程有三大类:Socket,URL,datagram HTTP协议是建立在TCP协议之上的一种应用. 一:HttpClient HttpCli ...
- windows下安装TensorFlow(CPU版)
建议先到anaconda官网下载最新windows版的anaconda3.6,然后按步骤进行安装.(这里我就不贴图了,自己下吧) 1.准备安装包 http://www.lfd.uci.edu/~goh ...
- 基于Visual Studio .NET2015的单元测试 OpenCover
https://www.cnblogs.com/XiaoRuLiang/p/10095723.html 基于Visual Studio .NET2015的单元测试 1. 在Visual Stud ...
- Zookeeper的集群配置和Java测试程序 (一)
概述 Zookeeper是Apache下的项目之一,倾向于对大型应用的协同维护管理工作.IBM则给出了IBM对ZooKeeper的认知: Zookeeper 分布式服务框架是 Apache Hadoo ...
- eclipse把局部变量提为全局变量的快捷键是什么
没有缺省定义的直接快捷键,或者就按Ctrl+1按照melord说的那样做,或者自己在Preference/General/Keys自己对Convert Local Variable to Feild进 ...
- [PHP]Mysql的运用
1.创建数据库和表,代码如下: //创建数据库函数 function createDB($DBname){ $query="CREATE DATABASE $DBname"; re ...