Python使用import导入本地脚本及导入模块的技巧总结


Posted in Python onAugust 07, 2019

本文实例讲述了Python使用import导入本地脚本及导入模块的技巧。分享给大家供大家参考,具体如下:

导入本地脚本

import 如果你要导入的 Python 脚本与当前脚本位于同一个目录下,只需输入 import,然后是文件名,无需扩展名 .py。 伪代码如下:

import useful_functions
useful_functions.add_five([1, 2, 3, 4])

我们可以为导入模块添加别名,以使用不同的名称引用它。

import useful_functions as uf
uf.add_five([1, 2, 3, 4])

使用 if main 块

为了避免运行从其他脚本中作为模块导入的脚本中的可执行语句,将这些行包含在 if __name__ == "__main__" 块中。或者,将它们包含在函数 main() 中并在 if main 块中调用该函数。

每当我们运行此类脚本时,Python 实际上会为所有模块设置一个特殊的内置变量 __name__。当我们运行脚本时,Python 会将此模块识别为主程序,并将此模块的 __name__ 变量设为字符串 “main”。对于该脚本中导入的任何模块,这个内置 __name__ 变量会设为该模块的名称。因此,条件 if __name__ == "__main__"会检查该模块是否为主程序。

在同一目录下创建如下两个脚本文件,并在终端里运行这些脚本!实验 if main 块并访问导入模块中的对象!

demo.py 文件

# demo.py
import useful_functions as uf
scores = [88, 92, 79, 93, 85]
mean = uf.mean(scores)
curved = uf.add_five(scores)
mean_c = uf.mean(curved)
print("Scores:", scores)
print("Original Mean:", mean, " New Mean:", mean_c)
print(__name__)
print(uf.__name__)

useful_functions.py文件

# useful_functions.py
def mean(num_list):
  return sum(num_list) / len(num_list)
def add_five(num_list):
  return [n + 5 for n in num_list]
def main():
  print("Testing mean function")
  n_list = [34, 44, 23, 46, 12, 24]
  correct_mean = 30.5
  assert(mean(n_list) == correct_mean)
  print("Testing add_five function")
  correct_list = [39, 49, 28, 51, 17, 29]
  assert(add_five(n_list) == correct_list)
  print("All tests passed!")
if __name__ == '__main__':
  main()

如果运行 $ python demo.py,那么有如下输出结果:

Scores: [88, 92, 79, 93, 85]
Original Mean: 87.4  New Mean: 92.4
__main__
useful_functions

如果运行 $ python useful_functions.py,那么有如下输出结果:

Testing mean function
Testing add_five function
All tests passed!

import 导入模块的技巧

要从模块中导入单个函数或类:

from module_name import object_name

要从模块中导入多个单个对象:

from module_name import first_object, second_object

要重命名模块:

import module_name as new_name

要从模块中导入对象并重命名:

from module_name import object_name as new_name

要从模块中单个地导入所有对象(请勿这么做):

from module_name import *

如果你真的想使用模块中的所有对象,请使用标准导入 module_name 语句并使用点记法访问每个对象

import module_name

为了更好地管理代码,Standard 标准库中的模块被拆分成了子模块并包含在软件包中。软件包是一个包含子模块的模块。子模块使用普通的点记法指定。子模块的指定方式是软件包名称、点,然后是子模块名称。你可以如下所示地导入子模块

import package_name.submodule_name

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python按照多个字符对字符串进行分割的方法
Mar 17 Python
python中偏函数partial用法实例分析
Jul 08 Python
非递归的输出1-N的全排列实例(推荐)
Apr 11 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
Mar 19 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
May 24 Python
Python3数据库操作包pymysql的操作方法
Jul 16 Python
python内存动态分配过程详解
Jul 15 Python
通过python连接Linux命令行代码实例
Feb 18 Python
python datetime处理时间小结
Apr 16 Python
Keras loss函数剖析
Jul 06 Python
Python 内存管理机制全面分析
Jan 16 Python
解决virtualenv -p python3 venv报错的问题
Feb 05 Python
python可视化篇之流式数据监控的实现
Aug 07 #Python
Python+AutoIt实现界面工具开发过程详解
Aug 07 #Python
Django中的用户身份验证示例详解
Aug 07 #Python
浅谈Python中(&,|)和(and,or)之间的区别
Aug 07 #Python
Python操作远程服务器 paramiko模块详细介绍
Aug 07 #Python
使用Python快乐学数学Github万星神器Manim简介
Aug 07 #Python
python中的&&及||的实现示例
Aug 07 #Python
You might like
linux下为php添加curl扩展的方法
2011/07/29 PHP
PHP详解ASCII码对照表与字符转换
2011/12/05 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
解决tp5在nginx下修改配置访问的问题
2019/10/16 PHP
Jquery ThickBox插件使用心得(不建议使用)
2010/09/08 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
vue实现下载文件流完整前后端代码
2020/11/17 Vue.js
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
2020/04/22 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
python UDF 实现对csv批量md5加密操作
2021/01/01 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
总经理职责范文
2013/11/08 职场文书
总经理助理工作职责
2014/02/06 职场文书
无传销社区工作方案
2014/05/13 职场文书
高中教师个人总结
2015/02/10 职场文书
幼师辞职信范文
2015/02/27 职场文书
2016学校元旦晚会经典开场白台词
2015/12/03 职场文书
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android