python模块介绍和 import本质
2017-08-02 15:30
162 查看
模块的定义:
用来从逻辑上组织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模块的方法 作者:运维之路 字体:[增加 减小] 类型:转载 时间:2016-01-31 我要评论 这篇文章主要介绍了python 在不同层级目录import
- Python22 模块详解 之 import本质
- 小白的Python之路 day5 python模块详解及import本质
- Python模块详解以及import本质,获得文件当前路径os.path.abspath,获得文件的父目录os.path.dirname,放到系统变量的第一位sys.path.insert(0,x)
- python内置模块(import)
- Python 被导入模块多次被加载的问题(基于python的import机制)
- Python import其他层级的模块
- Python常用模块种类的系统介绍及与操作系统相关的调用和操作
- python 模块相互import
- python 常用模块介绍
- Python标准库(非常经典的各种模块介绍)
- Python标准库(非常经典的各种模块介绍)
- 初步介绍Python中的pydoc模块和distutils模块
- Python图像处理库PIL的ImageEnhance模块介绍
- 基础入门_Python-模块和包.运维开发中__import__动态导入最佳实践?
- Python ::OS模块 提供的接口介绍
- Python模块功能在实际应用方案中的相关功能的介绍
- 从Python的两种导入模块(from import和import)方式谈命名空间与作用域
- Python Queue模块详细介绍及实例
- C++开发python扩展模块:ImportError: dynamic module does not define init function (initRabbit)解决办法