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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值