python3中import语句(搜索路径的应用)
来源:互联网 发布:牙疼怎么办知乎 编辑:程序博客网 时间:2024/05/17 23:53
想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下:
import module1[, module2[,... moduleN]
当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。
搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 support,需要把命令放在脚本的顶端。
一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。
当我们使用import语句的时候,Python解释器是怎样找到对应的文件的呢?
这就涉及到Python的搜索路径,搜索路径是由一系列目录名组成的,Python解释器就依次从这些目录中去寻找所引入的模块。
这看起来很像环境变量,事实上,也可以通过定义环境变量的方式来确定搜索路径。
搜索路径是在Python编译或安装的时候确定的,安装新的库应该也会修改。搜索路径被存储在sys模块中的path变量,做一个简单的实验,在交互式解释器中,输入以下代码:
>>> import sys>>> sys.path['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']>>>sys.path 输出是一个列表,其中第一项是空串'',代表当前目录(若是从一个脚本中打印出来的话,可以更清楚地看出是哪个目录),亦即我们执行python解释器的目录(对于脚本的话就是运行的脚本所在的目录)。
因此若像我一样在当前目录下存在与要引入模块同名的文件,就会把要引入的模块屏蔽掉。
了解了搜索路径的概念,就可以在脚本中修改sys.path来引入一些不在搜索路径中的模块。
现在,在解释器的当前目录或者 sys.path 中的一个目录里面来创建一个fibo.py的文件,代码如下:
def fib( ): ... ...
def fab( ): ... ...然后进入python解释器,使用下面的命令导入这个模块:
import fibo这样做并没有把直接定义在fibo中的函数名称写入到当前符号表里,只是把模块fibo的名字写到了那里。
可以使用模块名称来访问函数:
fibo.fib()...#运行结果fibo.fab()...#运行结果
如果打算经常使用一个函数,你可以把它赋给一个本地的名称,如:
fib=fibo.fib()...#将该函数赋值给本地变量fib()...#运行结果
阅读全文
0 0
- python3中import语句(搜索路径的应用)
- python3的import导入语句的书写方式
- Python Import 路径搜索机制
- Python中关于导入(import)语句的使用说明
- python __file__的绝对路径与import的搜索路径
- Java中import语句的学习
- python中关于import语句的认识
- Python中import语句的使用教程
- import自定义函数中,python2 和python3的不同
- Python3中import使用时自己挖的“坑”
- python3 循环语句的位置应用(何时退出循环,何时在循环内写语句)
- python3的模块import操作
- 深度搜索的应用----环路最小路径
- 关于thinkphp中——import中@表示的路径
- python3 中numpy模块的一些应用(一)
- import语句的实质
- import语句的作用
- python3.5中import cv2报错
- was aborted. Call getNextException to see the cause.异常问题
- Linux系统下安装 1.8 JDK
- 透视变换(Perspective Transformation)
- 关于渐进式(PWA) Web 应用,你应该知道的一切
- bzoj 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝(DP)
- python3中import语句(搜索路径的应用)
- chrome开发者工具中source中不显示js的问题
- 关于delphi图片不能使用jpg的问题(涉及自绘会报错)
- 第一个完整的神经网络样例程序
- 一个老鸟发的公司内部整理的 Android 学习路线图
- Qt 之 Relational Table Model Example 解析
- zabbix 分布式安装源码安装 ubuntu14.04
- android 语音识别 之 讯飞语音移植
- Android Studio报错:Failed to resolve:annotationProcessor解决方案