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中操作文件之seek()方法的使用教程
May 24 Python
详解Python中使用base64模块来处理base64编码的方法
Jul 01 Python
Python实现二分查找与bisect模块详解
Jan 13 Python
详解python调度框架APScheduler使用
Mar 28 Python
python 类对象和实例对象动态添加方法(分享)
Dec 31 Python
python获取文件真实链接的方法,针对于302返回码
May 14 Python
Python实现的txt文件去重功能示例
Jul 07 Python
使用Pandas将inf, nan转化成特定的值
Dec 19 Python
python用TensorFlow做图像识别的实现
Apr 21 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 Python
Python机器学习之逻辑回归
May 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
NOT NULL 和NULL
2007/01/15 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
2015/12/15 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
2016/11/09 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
兼容最新firefox、chrome和IE的javascript图片预览实现代码
2014/08/08 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
Angular.js之作用域scope'@','=','&'实例详解
2017/02/28 Javascript
js实现二级导航功能
2017/03/03 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
详解vuex的简单使用
2018/03/12 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
jQuery 实现扁平式小清新导航
2020/07/07 jQuery
解决vue addRoutes不生效问题
2020/08/04 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
Python描述器descriptor详解
2015/02/03 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
教你使用Canvas处理图片的方法
2017/11/28 HTML / CSS
阳光体育:Sunny Sports(购买露营和远足设备)
2018/08/07 全球购物
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
线程问题:wait()方法是定义在哪个类里面
2015/07/07 面试题
大四自我鉴定范文
2013/10/06 职场文书
会计专业毕业生自荐信范文
2013/12/20 职场文书
信息专业个人的自我评价
2013/12/27 职场文书
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
大学生毕业求职自荐书范文
2014/02/04 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书