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用GET方法上传文件
Mar 10 Python
深入理解NumPy简明教程---数组1
Dec 17 Python
Python创建对称矩阵的方法示例【基于numpy模块】
Oct 12 Python
Python基于win32ui模块创建弹出式菜单示例
May 09 Python
Python中 map()函数的用法详解
Jul 10 Python
详解python实现小波变换的一个简单例子
Jul 18 Python
Python3 selenium 实现QQ群接龙自动化功能
Apr 17 Python
TensorFlow固化模型的实现操作
May 26 Python
基于python判断字符串括号是否闭合{}[]()
Sep 21 Python
一文读懂python Scrapy爬虫框架
Feb 24 Python
如何获取numpy array前N个最大值
May 14 Python
Python利用机器学习算法实现垃圾邮件的识别
Jun 28 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
hadoop中一些常用的命令介绍
2013/06/19 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
PHPCMS V9 添加二级导航的思路详解
2016/10/20 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
jQuery代码优化 选择符篇
2011/11/01 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
2017/02/08 Javascript
jQuery常用选择器详解
2017/07/17 jQuery
JS判断数组那点事
2017/10/10 Javascript
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
原生js实现购物车
2020/09/23 Javascript
python中pygame模块用法实例
2014/10/09 Python
python从入门到精通(DAY 1)
2015/12/20 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
python3 线性回归验证方法
2019/07/09 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
如何表示python中的相对路径
2020/07/08 Python
某公司面试题
2012/03/05 面试题
监理员的岗位职责
2013/11/13 职场文书
个人工作表现评语
2014/04/30 职场文书
临床专业自荐信
2014/06/22 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
大学生实习证明
2015/06/16 职场文书
团结友爱主题班会
2015/08/13 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python