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格式化css文件的方法
Mar 10 Python
python中如何使用朴素贝叶斯算法
Apr 06 Python
Python通过future处理并发问题
Oct 17 Python
深入了解Python中pop和remove的使用方法
Jan 09 Python
Python抽象和自定义类定义与用法示例
Aug 23 Python
Django组件cookie与session的具体使用
Jun 05 Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
Python调用REST API接口的几种方式汇总
Oct 19 Python
详解如何使用Pytest进行自动化测试
Jan 14 Python
python 利用panda 实现列联表(交叉表)
Feb 06 Python
Python之matplotlib绘制饼图
Apr 13 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 什么是PEAR?
2009/03/19 PHP
关于php连接mssql:pdo odbc sql server
2011/07/20 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
PHP获取数组中重复最多的元素的实现方法
2014/11/11 PHP
PHP连接MySQL数据的操作要点
2015/03/20 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
jQuery.extend 函数的详细用法
2012/06/27 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
angular使用md5,CryptoJS des加密的方法
2019/06/03 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
Scrapy的简单使用教程
2017/10/24 Python
selenium+python实现自动化登录的方法
2018/09/04 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
英国香水店:The Perfume Shop
2017/03/27 全球购物
同程旅游英文网站:LY.com
2018/11/13 全球购物
网络技术支持面试题
2013/04/22 面试题
临床医学系毕业生推荐信
2013/11/09 职场文书
安全员岗位职责
2013/11/11 职场文书
深入开展党的群众路线教育实践活动方案
2014/02/04 职场文书
保护黄河倡议书
2014/05/16 职场文书
工作作风承诺书
2014/08/30 职场文书
银行授权委托书范本
2014/10/04 职场文书
大学生求职信怎么写
2015/03/19 职场文书