模块导入和搜索路径
来源:互联网 发布:seo文案分享的东西 编辑:程序博客网 时间:2024/06/07 10:41
Python中的模块和JAVA里面包的概念很类似,在JAVA中如果我们要使用一个第三方的功能,可以通过如下方式来引入。
示例:
package com.example.tests;
import static org.junit.Assert.*;
import java.util.*;
import org.junit.*;
import org.openqa.selenium.*;
import org.openqa.selenium.ie.InternetExplorerDriver;
上面展示了JAVA导入了两个包:junit和selenium。下面来看看Python是如何导入第三方功能的。
示例:
我们可以看到,JAVA和Python的导入都是通过import的方式来实现的。但Python导入除了import外,还有from ..import ..这种方式,下面一起来看一下。
【方式一: import】
在Python中用关键字import来引入某个模块,比如要引用模块math,就可以在文件的最开头输入import math。当解释器遇到import语句,如果模块在当前的搜索路径就会被直接导入。
像上面导入math后,在调用时为什么还要加上math.sprt()呢?因为可能存在这样一种情况,在多个模块中存在相同的函数名,此时如果直接写函数名的话,Python解释器无法判断该执行哪个函数,所以才需要加上math这个模块名。
【方式二: from … import …】
Python也可以只导入某个模块的某个功能,比如上面的import math它倒入了math模块中的所有功能,那通过from math import sqrt就可以只导入sqrt这个功能了。
示例:
通过from … import …这种形式导入的话,就可以不用写具体的模块名了,直接通过函数名就可以直接调用了。
上面imprt math导入了math模块下的所有功能,但调用时需要写上模块名.函数名;而from math import sqrt这种方式只是导入了math模块下的sqrt一个功能,那如何即要导入math模块下的所有功能,又要省去模块名.函数名这种写法呢?
示例:
通过from math import * 就可以实现即要导入math模块下的所有功能,又省去了模块名.函数名这种写法。但是Python并不建议我们这样做。
另外,有时你的模块名或者模块的属性名已经存在了,或者当前的模块名输入时比较麻烦,再或者你就想使用自己定义的模块名,那可以使用as关键字。
示例:
又或者:
【搜索路径和路径搜索】
模块的导入需要一个叫做“路径搜索”的过程。即在文件系统“预定义区域”中查找某个文件,这些预定义区域只不过是你的Python搜索路径的集合。路径搜索—>指查找某个文件的操作; 搜索路径—>是去查找一组目录。
默认搜索路径是在编译或是安装时指定的,在Python中是保存在sys.path的变更里。
可以看到sys.path返回的是列表,所以我们可以通过操作列表的方式来添加新的路径。即:sys.path.append(‘路径’)
示例:
当前路径: ‘/Users/huangxh/Desktop/test’
文件结构:
当前路径下面没有一个叫A的模块名(或文件夹),即在当前路径下面我们只能访问到AA文件夹,所以导入时会报错。
可以通过将当前路径加入到sys.path路径里来解决这个问题
【_all_】
在某个Python文件头部加上all = [“Test”,”test1”]后,再import导入模块时,只会将Test和test1导入,而其它的模块不会被导入。
示例:
【_init_.py】
Python里面有包和模块的概念,包可以理解成一个文件夹,模块可以理解成一个文件
示例:
init.py:是用来控制当import包时,如何处理包下面的模块。
示例:
在init.py文件里面加上:all = [“classA”,”test”],表明当import A时,可以访问classA和test模块。如果此时在A文件夹下又多了一个testb.py的文件,当用户去直接调用testb的时会报错
【_pycache_文件夹】
- 模块导入和搜索路径
- python模块之搜索路径和路径搜索
- 修改模块搜索路径 Import as 扩充 相对导入
- 【python学习笔记】模块导入的搜索路径顺序是什么?
- Python学习3:搜索路径和模块
- Python模块包和搜索路径
- python import 搜索路径及相对导入和绝对导入
- Python 模块搜索路径
- Python模块搜索路径
- python模块搜索路径
- Python 模块搜索路径
- Vc2005 调试打开minidump,模块和符号的搜索路径。
- c++导入python模块,如果python脚本与exe不在同一目录,需要增加搜索路径
- pthon 模块的搜索路径
- Python之模块搜索路径
- python添加模块搜索路径
- python 根据路径导入模块
- Python 模块导入路径问题
- 由三维模型生成二维图片
- Docker之入门一
- InitSystemFunctions
- jsp标签
- Linux1练习
- 模块导入和搜索路径
- 构造函数和析构函数
- Git安装使用(Windows)
- 【Bzoj2243】染色
- easyui 生成 多级 菜单树 01
- 抛出异常的具体实现—附小例子
- 洛谷 2765_魔术球问题_网络流
- 支付宝、微信当面付开发流程
- 静态包含和动态包含的区别