📜  Python的延迟导入

📅  最后修改于: 2022-05-13 01:54:19.543000             🧑  作者: Mango

Python的延迟导入

在本文中,我们将学习如何在Python进行延迟导入。为此,让我们首先了解延迟导入。

什么是延迟导入?

这是Pyforest 模块的一个特性,它允许用户在不向代码片段中添加库的情况下执行任务,因为此函数的任务是将这些库本身添加到代码片段中。它是为厌倦了在程序中编写这些导入语句的用户而设计的。它对于需要编写冗长代码的开发人员非常有用,它为他们提供了优势。

为什么我们需要延迟导入?

作为Python用户,我们经常面临每次在每个程序中导入多个模块的问题,例如 NumPy、pandas、sklearn、nltk、os、sys、pickle 等,这在我们做一些工作时实际上很烦人和恼火这没有任何好处,而是浪费时间,如果任何时候我们忘记在程序中导入任何模块,那么程序就会出错,我们不希望我们的程序仅仅因为模块而崩溃。

因此,Pyforest 通过创建一个内置函数来解决这个问题,该函数包含几乎 99% 的Python流行模块的详细信息,该函数可识别我们正在使用的导入并自动为程序添加模块,这样我们就不会'不需要一次又一次地这样做。这种方式更方便快捷,因为我们可以使用预装的模块而无需将它们导入不同的程序中,并且它也不会添加它检查程序的所有模块,只会添加使用过的模块,因此没有如此轻松的缺点是我们不需要添加这些模块,一次又一次,我们的工作只需添加一个模块即可完成。

例子:



让我们编写一些行代码,我们不导入所需的模块。这是我们简单而持续的习惯。

Python3
# forget to import numpy
  
# using numpy
array = np.array([1, 2, 3])
print(array)


Python3
import pyforest
  
  
print(lazy_imports())


Python3
# forget to import numpy
# nut importing pyforest
import pyforest
  
# using numpy
array = np.array([1, 2, 3])
print(array)
  
print(active_imports())


Python3
# forget to import numpy, matplotlib
# but importing pyforest
import pyforest
  
# using numpy
array = np.array([1, 2, 3])
  
# using matplotlib.pyplot
plt.plot(array)
  
print(active_imports())


如果我们运行上面的代码,我们会得到以下错误:

现在,我们收到错误,因为模块未导入。以这种类似的方式,我们忘记在大行代码中导入所需的模块。要导入,我们必须为代码中使用的每个模块编写导入语句。因此,在一行中执行此操作,我们使用 pyforest 模块中的 lazy_import。

pyforest 模块的安装

为了开始安装过程,我们需要在我们的设备上安装Python ,然后我们需要打开命令提示符并在提示符中写入以下命令来安装“pyforest”模块,它为我们提供了 lazy_module() 的功能。

Installation: 
pip install pyforest

Installation/Upgradation: 
pip install --upgrade pyforest

导入和 Lazy_import

要查看 pyforest 模块中的导入函数,我们可以打印 lazy_modules()函数:



蟒蛇3

import pyforest
  
  
print(lazy_imports())

输出:

因此,我们可以在上面的输出中看到 pyforest 库中存在的所有模块,这些模块无需多次导入即可使用。

这只是一行,但如果我们必须导入很多模块,我们将不得不更多地关注导入模块而不是编写代码。所以这里 Pyforest 解决了这个问题。只需添加一个模块“import pyforest”,我们就可以开始了。

示例 1:

蟒蛇3

# forget to import numpy
# nut importing pyforest
import pyforest
  
# using numpy
array = np.array([1, 2, 3])
print(array)
  
print(active_imports())

输出:

[1 2 3]
import numpy as np
['import numpy as np']

示例 2:

蟒蛇3

# forget to import numpy, matplotlib
# but importing pyforest
import pyforest
  
# using numpy
array = np.array([1, 2, 3])
  
# using matplotlib.pyplot
plt.plot(array)
  
print(active_imports())

输出:

延迟导入是 Pyforest 库的一个非常有用的功能,因为该功能会自动为我们导入库,如果我们不使用该库,则不会添加它。这个特性对于那些不想在他们的代码中一遍又一遍地编写导入语句的人来说非常有用。这个库的主要好处是它包含了大部分库,我们可以随时使用该库,而无需导入该库,因为惰性导入功能会为我们完成。

lazy_import() 的优点:

  • 它解决了在代码片段中导入库的问题。
  • 它会根据用法自动设置变量名称,以避免库出现任何错误。
  • 库只会在您使用时导入,不会添加额外的库以减少编译时间。
  • 它包含近 99% 的可用Python库,这使得它更易于使用,因为不需要额外的库。
  • 它的实现很简单,其余的都是自动完成的