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 相关文章推荐
浅谈MySQL中的触发器
May 05 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
将Emacs打造成强大的Python代码编辑工具
Nov 20 Python
Python复制Word内容并使用格式设字体与大小实例代码
Jan 22 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
Apr 21 Python
PyQt5 在label显示的图片中绘制矩形的方法
Jun 17 Python
Python Django Cookie 简单用法解析
Aug 13 Python
Python TCP通信客户端服务端代码实例
Nov 21 Python
Python对象的属性访问过程详解
Mar 05 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
基于python实现MQTT发布订阅过程原理解析
Jul 27 Python
Django DRF APIView源码运行流程详解
Aug 17 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
40年前的这部特摄片恐龙特级克塞号80后的共同回忆
2020/03/08 日漫
第九节--绑定
2006/11/16 PHP
php初学者写及时补给skype用户充话费的小程序
2008/11/02 PHP
php cookie的操作实现代码(登录)
2010/12/29 PHP
PHP的构造方法,析构方法和this关键字详细介绍
2013/10/22 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
PHP实现的AES 128位加密算法示例
2019/09/16 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
jquery 防止表单重复提交代码
2010/01/21 Javascript
JSON.stringify 语法实例讲解
2012/03/14 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
2016/05/05 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python处理PHP数组文本文件实例
2014/09/18 Python
python中WSGI是什么,Python应用WSGI详解
2017/11/24 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
Python中super函数用法实例分析
2019/03/18 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
使用python实现哈希表、字典、集合操作
2019/12/22 Python
毕业生自荐信格式
2014/03/07 职场文书
诉讼授权委托书
2014/10/15 职场文书
2015年安全月活动总结
2015/03/26 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
python自动化测试之Selenium详解
2022/03/13 Python
Java无向树分析 实现最小高度树
2022/04/09 Javascript
Elasticsearch 聚合查询和排序
2022/04/19 Python