python中的imp模块——让引用模块更加简单
最近撸代码的时候发现python有一个imp模块,有点儿意思。
首先:
pip install imp
看模块名,可以看出其实就是"import"的缩写。在功能上也一样,但用起来比import要成熟一些。
直接看例子:在一个py文件中调用另一个py文件,不用import的方式。
第一个文件func.py这么写:
def print_text():print('hehe')
第二个文件imp_test.py这么写:
import impthe_func = imp.load_source('lol', './func.py')
# 第一个参数为命名,重要的是第二个参数指定引用函数路径就行了。
the_func.print_text()
直接运行python imp_test.py就可以发现输出为: hehe
和import类似,当运行一遍以后,会在当前路径生成一个__pycache__文件记录引用关系,以保证再次运行时可以加速。
imp模块的优点:
1. 既可以指定相对路径又可以指定绝对路径,在使用上非常灵活。而import只是经常换个环境就会遇到路径错误(遇到过的都懂-_-);被import弄烦了的都可以用imp解决。
imp模块的缺点:
1. 不能在pycharm中用ctrl+click追踪函数路径;
python中的imp模块——让引用模块更加简单相关推荐
- Python中import导入上一级目录模块及循环import问题的解决
Python中import导入上一级目录模块及循环import问题的解决 参考文章: (1)Python中import导入上一级目录模块及循环import问题的解决 (2)https://www.cn ...
- Python中第三方的库(library)、模块(module),包(package)的安装方法以及ImportError: No module named...
Python中,想要安装第三方安装包,即third library,package等,对于熟悉的人来说,很简单. 但是对于新手,至少对于之前的我,很难,往往只是安装一个很小的包,都被搞得一头雾水. 现 ...
- python中使用sys模板和logging模块获取行号和函数名的方法
From: http://www.jb51.net/article/49026.htm 这篇文章主要介绍了python中使用sys模板和logging模块获取行号和函数名的方法,需要的朋友可以参考下 ...
- python中 time、datetime、random模块
1. 自定义模块 1.1 模块分类 模块的分类: 1.内置模块(标准库)--python解释器自带的.py文件(模块): 2.第三方模块-- 需要额外下载的 (pypi) 3.自定义模块(程序员写的) ...
- MongoDB数据库(8.Python中使用mongodb数据库以及pymongo模块用法)
在Python中使用MongoDB数据库,首先要下载pymongo模块 直接在命令行 pip install pymongo 就可以了 Python中使用pymongo模块对MongoDB数据 ...
- Python中的堆实现:heapq 模块——利用堆结构实现快速访问数据流中的中位数
堆结构 堆结构是一种优先队列,可以以任意顺序添加对象,并随时查找或删除最小(大)的元素,或者查找和删除前 K 个最小(大)元素.相比于列表方法min() / max(),这样做的效率要高得多. 堆结构 ...
- python中options类_Python的OptionParser模块
Python中强大的选项处理模块. 示例 #!/usr/bin/pythonfrom optparse import OptionParser parser = OptionParser() pars ...
- [转载] 扩展Python之在Python中调用C编写的函数模块
参考链接: 如何在Python中调用C函数 目录 编写Python扩展1. 创建应用代码2. 根据样板编写封装代码2.1 包含Python头文件2.2 为每一个模块函数添加形如PyObject* *M ...
- python中的帮助系统_python系统模块
Python中大多数系统接口都集中在两个模块:sys和os.这么说有点过于简单化 还有一些其他的表转模块也属于这个领域他们包括: glob 用于文件名的扩展 socket 用于网络连接和进程间通信(I ...
最新文章
- Linux Guide for Developers --- ubuntu开发者
- mongodb windows安装
- 计算机视觉与深度学习 | 对恐怖袭击事件记录数据的量化分析(附源代码):博主的机器学习首秀(研究生数学建模二等奖)
- brew 安装java8_mac使用brew安装Java8
- lambda表达式浅析【C++学习笔记】
- linux内核disabled,Linux内核关闭IPv6协议的方式
- java的cxf的maven_Maven+Spirng+Mybatis+CXF搭建WebService服务
- 股票历史数据下载梳理汇总(一)
- 测试开发工程师简历模版
- Beetlsql自学笔记
- 优秀的管理者如何带好团队(这几个技巧你是否学会)
- meson ninja 简介
- H5游戏忆童年—承载梦想的纸飞机回来了吗?
- taro开发微信小程序-播放轨迹(十一)
- Android基础第四篇
- Unnecessary escape character: \- no-useless-escape eslint
- 缓存加速--Squid代理服务器应用(传统代理、透明代理)
- 斯坦福NLP课程 | 第11讲 - NLP中的卷积神经网络
- 【linux】循序渐进学运维-printf
- linux i3 命令,i3 窗口管理器入门
热门文章
- ci框架 乱码 mysql_mysql设置utf8_unicode_ci字符集php页面输出??乱码的解决方法
- VMware ESXi 8.0 macOS Unlocker OEM BIOS (标准版和厂商定制版)
- 前端的学习之路:初级CSS---w3cschool的导航条
- 东北大学acm暑期夏令营第八天
- 机器人建模----运动学模型及代码实现
- Android 蓝牙开发(八)hfp接听、挂断电话
- 6-1免疫算法(IA)原理
- python主动抛出异常_主动抛异常
- 一套键盘如何控制多台电脑?
- cpp实现直线的DDA算法