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 logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
python实现音乐下载器
Apr 15 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
May 10 Python
python 每天如何定时启动爬虫任务(实现方法分享)
May 21 Python
python实现键盘控制鼠标移动
Nov 27 Python
python微元法计算函数曲线长度的方法
Nov 08 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
Aug 28 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
Apr 08 Python
Django 用户登陆访问限制实例 @login_required
May 13 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
Jun 11 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
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
PHP 模拟$_PUT实现代码
2010/03/15 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
2011/07/01 PHP
解析php中const与define的应用区别
2013/06/18 PHP
浅析十款PHP开发框架的对比
2013/07/05 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
2017/10/23 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
jquery一般方法介绍 入门参考
2011/06/21 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
2018/11/22 Javascript
微信小程序复选框实现多选一功能过程解析
2020/02/14 Javascript
Python实现HTTP协议下的文件下载方法总结
2016/04/20 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
2017/04/15 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
Python 多维List创建的问题小结
2019/01/18 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
python RSA加密的示例
2020/12/09 Python
为数据库创建索引都需要注意些什么
2012/07/17 面试题
运动会广播稿20字
2014/02/18 职场文书
《花木兰》教学反思
2014/04/09 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
任长霞观后感
2015/06/16 职场文书
安全教育培训心得体会
2016/01/15 职场文书
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记