官术网_书友最值得收藏!

1.3.2 from ... import

導入函數還有另一種方法。例如,你可能希望訪問NumPy中的所有函數,但又不想在函數前面輸入“numpy.”前綴。不妨嘗試以下命令:

from numpy import *
sqrt(2)

這很方便,但如果你想同時使用兩個不同的模塊,這可能會導致麻煩。有一個名為math的模塊,它也有一個sqrt函數。如果同時從mathnumpy導入所有函數,那么在輸入sqrt(2)時會調用哪個模塊的函數?這在處理數字數組時很重要。為了保持直觀,最好不要使用“from 模塊名import *”命令,而是導入模塊,并根據需要顯式調用numpy.sqrtmath.sqrt。不過,這里還有一個折中的方案:你可以給模塊取別名。嘗試以下命令:

import numpy as np
np.sqrt(2)

如此一來,當不同的模塊具有相同名稱的函數時,我們既可以節省輸入,又可以避免混淆。

在某些情況下,你可能只需要一個特定的函數,而不需要整個函數庫。你可以通過函數名稱導入特定的函數:

from numpy import sqrt, exp
sqrt(2)
exp(3)

我們只導入了NumPy模塊中的兩個函數,無須使用“numpy.”前綴即可訪問這些函數。請注意,這里的導入命令和“from numpy import *”命令很相似。星號是一個“通配符”,它告訴導入命令需要獲取所有內容。

稍微改變一下導入語句,你就可以為導入的函數提供自定義別名:

from numpy.random import random as rand
rand()

現在,我們有了一個隨機數生成器,它有一個很方便輸入的別名:rand

該示例還展示了模塊中還有模塊的現象:numpy模塊包含numpy.random模塊,而numpy.random模塊又包含numpy.random.random函數。當我們輸入import numpy時,我們導入了許多這樣的子模塊。當然,我們也可以只導入一個函數,方法是使用from,并提供目標函數的準確名稱、目標函數所在的模塊,以及目標函數的別名。

主站蜘蛛池模板: 门源| 灵璧县| 道孚县| 安溪县| 宜州市| 平陆县| 广灵县| 壶关县| 呼和浩特市| 独山县| 孟村| 山阴县| 卓资县| 安泽县| 包头市| 太保市| 莎车县| 葵青区| 汝州市| 凭祥市| 神池县| 凤翔县| 富源县| 宿州市| 迁西县| 长春市| 酒泉市| 涪陵区| 新泰市| 应用必备| 吴堡县| 荣成市| 通渭县| 宁阳县| 曲靖市| 康平县| 公安县| 城市| 铜鼓县| 亚东县| 孙吴县|