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 相关文章推荐
Python2.x和3.x下maketrans与translate函数使用上的不同
Apr 13 Python
python中模块的__all__属性详解
Oct 26 Python
简单实现python聊天程序
Apr 01 Python
对python 自定义协议的方法详解
Feb 13 Python
python利用selenium进行浏览器爬虫
Apr 25 Python
java判断三位数的实例讲解
Jun 10 Python
解决django后台样式丢失,css资源加载失败的问题
Jun 11 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
Python 实现加密过的PDF文件转WORD格式
Feb 04 Python
Python+OpenCV图像处理—— 色彩空间转换
Oct 22 Python
用Python编写简单的gRPC服务的详细过程
Jul 04 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 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
VML绘图板②脚本--VMLgraph.js、XMLtool.js
2006/10/09 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
JavaScript的事件绑定(方便不支持js的时候)
2013/10/01 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
JavaScript实现的内存数据库LokiJS介绍和入门实例
2014/11/17 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
js获取Get值的方法
2016/09/29 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
python字符串加密解密的三种方法分享(base64 win32com)
2014/01/19 Python
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
python中的对数log函数表示及用法
2020/12/09 Python
印尼旅游网站:via
2017/11/12 全球购物
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
公司JAVA开发面试题
2015/04/02 面试题
电子商务实训报告总结
2014/11/05 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
大学生,三分钟即兴演讲稿
2019/07/22 职场文书
python实战之90行代码写个猜数字游戏
2021/04/22 Python
java objectUtils 使用可能会出现的问题
2022/02/28 Java/Android
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers