簡體   English   中英

關於 Python 命名空間和 function 導入的問題:是否最好只從模塊中導入您需要的 function?

[英]Question regarding Python namespaces and function imports: Is it preferable to import only the function you need from a module?

所以我不記得我是在哪里聽到或讀到這個的,但我記得有人告訴我,出於多種原因,最好只從模塊中導入所需的函數或類。

我們應該這樣做

from my_module import (needed_function, NeededClass)
from numpy import (arange, nditer, ones, zeros, array ndarray)

needed_function()
NeededClass()

ones
arange(0,16).reshape(4,4)
#etc etc

而不是導入模塊並調用所需的函數

import my_module as mm
import numpy as np

mm.needed_function()
mm.NeededClass()

np.ones
np.arange(0,16).reshape(4,4)
#etc etc

有人告訴我,主要原因是當module.function被調用時 Python 必須在本地命名空間中搜索module ,然后在模塊的命名空間中搜索function ,然后繼續。 這必須在每次調用module.function時完成,並且可能非常浪費時間(對於大型計算)。

與直接導入 function 形成對比,因為 python 只需要為該 function 搜索本地命名空間一次,這比搜索可能非常大的命名空間(例如 numpy 或 scipy)要小得多。

這樣對嗎?

一些好的答案: https://softwareengineering.stackexchange.com/questions/187403/import-module-vs-from-module-import-function

就我個人的用例而言,我正在創建一個 .exe,它需要非常便攜並且文件大小盡可能小。 因此,我大多只在可能的情況下導入單個函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM