python库和模块的区别_在函数中导入python库与全局导入之间有何区别?
假设我要导入一个在函数内部使用的python库.在函数中导入库还是在全局范围内导入更好?
做这个
def test_func:
import pandas as pd
# code implementation
还是在python文件顶部下面的行要全局导入?
import pandas as pd
每种方法的优缺点是什么?哪一种是python的最佳做法?
我正在使用python v3.6
编辑:做一些澄清.
假设我有2个功能.
def func1:
import pandas as pd
# code implementation
def func2:
import pandas as pd
# code implementation
python脚本运行两个函数.该库将被导入两次还是python编译器足够聪明以至于只能导入一次?这会影响性能.
解决方法:
名称可见性和执行时间点有所不同.导入文件或自行运行时,将导入模块级导入.仅当该函数运行时,该函数才是本地函数.导入的名称对于文件中的所有内容都是可见的,或者仅在执行导入的函数中可见.
由于击中import语句(虽然很小,但仍然很昂贵)会产生成本,因此本地语句将始终执行,而不仅仅是执行一次.不过,它不会完全重新导入模块,python会在第一次导入模块时缓存模块(请参阅reload和sys.modules).
显然,最佳实践是使用模块级别的导入,这就是您在99.999%的代码中看到的.可维护性是一个很大的原因-如果您想了解模块具有哪些依赖关系,只需查看顶部即可,而不必梳理所有代码,这很方便.
那么何时使用本地导入功能?
有以下三种情况:
>您不能更早使用导入.这发生在例如通过配置或系统检查在运行时选择数据库或其他系统/功能的后端.
>您否则将有循环进口.这是一种罕见的情况,也是一种代码气味,因此,如果有必要,请考虑进行重构.
>通过推迟模块导入来减少启动时间.但是,这很少有用.
因此,对于您的情况,答案是快速而简单的“不做”.
标签:python-3-x,python-import,python
来源: https://codeday.me/bug/20191025/1930126.html
python库和模块的区别_在函数中导入python库与全局导入之间有何区别?相关推荐
- python构造函数调用成员函数_成员函数中的Python调用构造函数
让我们以这个类为例,它正在扩展MySQLDB的connection对象.在class DBHandler(mysql.connections.Connection): def __init__(sel ...
- python字符串说法错误的是_以下选项中,关于Python字符串的描述错误的
以下选项中,关于Python字符串的描述错误的 答:Python字符串提供区间访问方式,采用[N:M]格式,表示字符串中从N到M的索引子字符串(包含N和M) 寒武纪生物大爆发的原因可能是 答:间断平衡 ...
- adc分辨率和精度的区别_科普 | 传感器的灵敏度、分辨率和精度三者之间有何区别?...
传感器作为一种检测装置,具有微型化.数字化.智能化.多功能化.系统化.网络化的特点.在现代工业生产尤其是自动化生产过程中,需要各种传感器来监视和控制生产过程中的各个参数,使设备工作在正常状态或最佳状态 ...
- python可以用vs编辑吗_在VS2017中编写Python程序
最近开始了python的学习,在搭建完python环境之后,在选择IDE的时候陷入了困境,首先选择的是PyCharm但是用着还是不习惯,毕竟用VS开发了几年了,突然换软件总感觉有点不适应,就想到了强大 ...
- python可以调用windows资源吗_在Windows中使用Python设置文件夹权限
慕丝7291255 对于那些对ACE安全描述符的"列表"感兴趣的人,使用以下数据结构.我在此方面获得了一些帮助,并且从此以后就一直使用它.typical_aces={ 203 ...
- python代码用c语言封装_使用C语言扩展Python程序的简单入门指引
一.简介 Python是一门功能强大的高级脚本语言,它的强大不仅表现在其自身的功能上,而且还表现在其良好的可扩展性上,正因如此,Python已经开始受到越来越多人的青睐,并且被屡屡成功地应用于各类大型 ...
- python程序运行按什么键_太惨!学Python方法用错,直接从入门到放弃!
原标题:太惨!学Python方法用错,直接从入门到放弃! 从你开始学习编程的那一刻起,就注定了以后所要走的路-从编程学习者开始,依次经历实习生.程序员.软件工程师.架构师.CTO等职位的磨砺:当你站在 ...
- 查看python内部模块命令,内置函数,查看python已经安装的模块命令
查看python内部模块命令,内置函数,查看python已经安装的模块命令 可以用dir(modules) 或者用 pip list 或者用 help('modules') 或者用 python -m ...
- 在学Python前学Linux,Python原来这么好学-1.2节: 在Linux中安装python
这里将告诉您Python原来这么好学-1.2节: 在Linux中安装python,具体操作过程:在Linux系统的主要发行版中,按其软件包格式来进行划分,可分为Deb系以及RPM系操作系统.Linux ...
最新文章
- 有100名考生参加C语言测验,全国计算机一级考试模拟试题及答案(1-100)
- python编程有什么用处-python中的生成器是什么?生成器有什么用处?
- WebMagic之爬虫监控
- Python的matplotlib(2)
- How is SAP CRM employee responsible being determined
- 图像处理中常见的时域与频域区别与关系
- java集成测试_基于TestNG+Mockito及自动装配注解的Spring MVC集成测试
- python动态导入模块_Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析...
- python测试开发工程师前景_测试开发工程师,薪水20k值吗?
- Android 全局替换项目默认字体
- springboot实现条形码_OkapiBarcode生成条形码
- JN项目-qq昵称含有表情无法进行第三方登录
- 自然语言处理(NLP)概论
- 如何从固态硬盘启动计算机,怎么把固态硬盘设置为第一启动系统
- R_leaflet包_最易上手地图教程(一)
- 论坛数据库设计初步设计
- 《面向对象程序设计》2018年春学期寒假及博客作业总结
- android8carlife连接不上,carlife为什么连接不上汽车 连接不上汽车解决方法
- 第一台纯意念控制的计算机是,全球第一台适用于全肢体中风康复的“纯意念控制”人工神经机器人系统是()。...
- PS2060L-ASEMI肖特基二极管PS2060L
热门文章
- ARM 之八 Cortex-M/R 内核启动过程 / 程序启动流程(基于IAR)
- DNS、IP地址、子网掩码和网关
- linux忆连软件,linux安装软件方法汇总
- java 多态向子类,在Java多态中调用子类
- hadoop yarn 获取日志_赵丽颖固然漂亮,可这份Hadoop核心教程也不差啊!
- 计算机应用基础模4答案,2012年自考“计算机应用基础”练习题及答案四
- 做百度AI工程师,还要会“相牛”?
- linux安装weblogic9,linux_weblogic9_安装说明.doc
- 2019.02.07 bzoj4316: 小C的独立集(仙人掌+树形dp)
- Snort里如何将读取的包记录存到指定的目录下(图文详解)