最近撸代码的时候发现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模块——让引用模块更加简单相关推荐

  1. Python中import导入上一级目录模块及循环import问题的解决

    Python中import导入上一级目录模块及循环import问题的解决 参考文章: (1)Python中import导入上一级目录模块及循环import问题的解决 (2)https://www.cn ...

  2. Python中第三方的库(library)、模块(module),包(package)的安装方法以及ImportError: No module named...

    Python中,想要安装第三方安装包,即third library,package等,对于熟悉的人来说,很简单. 但是对于新手,至少对于之前的我,很难,往往只是安装一个很小的包,都被搞得一头雾水. 现 ...

  3. python中使用sys模板和logging模块获取行号和函数名的方法

    From: http://www.jb51.net/article/49026.htm 这篇文章主要介绍了python中使用sys模板和logging模块获取行号和函数名的方法,需要的朋友可以参考下 ...

  4. python中 time、datetime、random模块

    1. 自定义模块 1.1 模块分类 模块的分类: 1.内置模块(标准库)--python解释器自带的.py文件(模块): 2.第三方模块-- 需要额外下载的 (pypi) 3.自定义模块(程序员写的) ...

  5. MongoDB数据库(8.Python中使用mongodb数据库以及pymongo模块用法)

    在Python中使用MongoDB数据库,首先要下载pymongo模块 直接在命令行   pip install pymongo   就可以了 Python中使用pymongo模块对MongoDB数据 ...

  6. Python中的堆实现:heapq 模块——利用堆结构实现快速访问数据流中的中位数

    堆结构 堆结构是一种优先队列,可以以任意顺序添加对象,并随时查找或删除最小(大)的元素,或者查找和删除前 K 个最小(大)元素.相比于列表方法min() / max(),这样做的效率要高得多. 堆结构 ...

  7. python中options类_Python的OptionParser模块

    Python中强大的选项处理模块. 示例 #!/usr/bin/pythonfrom optparse import OptionParser parser = OptionParser() pars ...

  8. [转载] 扩展Python之在Python中调用C编写的函数模块

    参考链接: 如何在Python中调用C函数 目录 编写Python扩展1. 创建应用代码2. 根据样板编写封装代码2.1 包含Python头文件2.2 为每一个模块函数添加形如PyObject* *M ...

  9. python中的帮助系统_python系统模块

    Python中大多数系统接口都集中在两个模块:sys和os.这么说有点过于简单化 还有一些其他的表转模块也属于这个领域他们包括: glob 用于文件名的扩展 socket 用于网络连接和进程间通信(I ...

最新文章

  1. Linux Guide for Developers --- ubuntu开发者
  2. mongodb windows安装
  3. 计算机视觉与深度学习 | 对恐怖袭击事件记录数据的量化分析(附源代码):博主的机器学习首秀(研究生数学建模二等奖)
  4. brew 安装java8_mac使用brew安装Java8
  5. lambda表达式浅析【C++学习笔记】
  6. linux内核disabled,Linux内核关闭IPv6协议的方式
  7. java的cxf的maven_Maven+Spirng+Mybatis+CXF搭建WebService服务
  8. 股票历史数据下载梳理汇总(一)
  9. 测试开发工程师简历模版
  10. Beetlsql自学笔记
  11. 优秀的管理者如何带好团队(这几个技巧你是否学会)
  12. meson ninja 简介
  13. H5游戏忆童年—承载梦想的纸飞机回来了吗?
  14. taro开发微信小程序-播放轨迹(十一)
  15. Android基础第四篇
  16. Unnecessary escape character: \- no-useless-escape eslint
  17. 缓存加速--Squid代理服务器应用(传统代理、透明代理)
  18. 斯坦福NLP课程 | 第11讲 - NLP中的卷积神经网络
  19. 【linux】循序渐进学运维-printf
  20. linux i3 命令,i3 窗口管理器入门

热门文章

  1. ci框架 乱码 mysql_mysql设置utf8_unicode_ci字符集php页面输出??乱码的解决方法
  2. VMware ESXi 8.0 macOS Unlocker OEM BIOS (标准版和厂商定制版)
  3. 前端的学习之路:初级CSS---w3cschool的导航条
  4. 东北大学acm暑期夏令营第八天
  5. 机器人建模----运动学模型及代码实现
  6. Android 蓝牙开发(八)hfp接听、挂断电话
  7. 6-1免疫算法(IA)原理
  8. python主动抛出异常_主动抛异常
  9. 一套键盘如何控制多台电脑?
  10. cpp实现直线的DDA算法