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 25 Python
Python 爬虫的工具列表大全
Jan 31 Python
Python基于select实现的socket服务器
Apr 13 Python
python基础教程之五种数据类型详解
Jan 12 Python
Python中字典和集合学习小结
Jul 07 Python
pycharm运行程序时在Python console窗口中运行的方法
Dec 03 Python
详解Python字符串切片
May 20 Python
python 求一个列表中所有元素的乘积实例
Jun 11 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
Jul 01 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
Jul 23 Python
django ORM之values和annotate使用详解
May 19 Python
Python __slots__的使用方法
Nov 15 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
php json_encode奇怪问题说明
2011/09/27 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
IE 条件注释详解总结(附实例代码)
2009/08/29 Javascript
js 模拟气泡屏保效果代码
2010/07/10 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
2011/05/24 Javascript
js验证模型自我实现的具体方法
2013/06/21 Javascript
最好用的省市二级联动 原生js实现你值得拥有
2013/09/22 Javascript
js查找节点的方法小结
2015/01/13 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
js隐式转换的知识实例讲解
2018/09/28 Javascript
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
详解nodejs http请求相关总结
2019/03/31 NodeJs
浅谈Vue页面级缓存解决方案feb-alive(上)
2019/04/14 Javascript
用JS实现一个简单的打砖块游戏
2019/12/11 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
动态创建类实例代码
2009/10/07 Python
Python高斯消除矩阵
2019/01/02 Python
基于python实现KNN分类算法
2020/04/23 Python
将python图片转为二进制文本的实例
2019/01/24 Python
python实现FTP循环上传文件
2020/03/20 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
彪马美国官网:PUMA美国
2017/03/09 全球购物
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
银行进社区活动总结
2014/07/07 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
MySQL Server 层四个日志
2022/03/31 MySQL