重新命名 Python 函式指標
-
使用 Python 中的
getattr()
函式使用指標重新命名函式 -
使用 Python 中的
import
語句使用指標重新命名函式 -
使用 Python 中的
package.function
語句使用指標重新命名函式 - 在 Python 中使用指標和引用字典重新命名函式
本教程將討論在 Python 中使用指標重新命名函式的不同方法。
使用 Python 中的 getattr()
函式使用指標重新命名函式
我們有一個名為 functions.py
的檔案,其中我們定義了兩個名為 square
和 cube
的函式。
我們可以使用幾種方法以其他名稱訪問這些函式。有一個眾所周知的概念,即 Python 中的一切都是物件。
眾所周知,物件是通過引用呼叫的。即使 Python 不支援使用者定義的指標,我們仍然可以使用以下方法解決這個問題。
我們的第一個方法涉及在 Python 中使用 getattr()
函式。getattr()
是一個內建函式,它返回一個物件的命名屬性的值。
它可以與 __import__()
函式 一起使用。__import__()
是另一個內建函式,用於在 Python 程式碼中匯入包、庫和模組。
匯入後,我們可以通過將 getattr()
函式的返回值分配給新變數來為原始函式分配一個新名稱。程式碼片段演示了這種現象在 Python 中的作用。
pkg = __import__('functions')
func = getattr(pkg, 'cube')
print(func(3))
輸出:
27
我們使用 __import__()
函式匯入檔案 functions.py
並將其值分配給 pkg
物件。
然後我們在 pkg
物件中獲取原始 cube()
函式並將其值分配給 func
變數。我們現在可以只使用 func()
函式呼叫 functions.cube
函式。
最後,我們用 func(3)
列印了 3 的立方。
使用 Python 中的 import
語句使用指標重新命名函式
此方法涉及使用 import
語句重新命名函式。
import
語句用於在我們的程式碼中匯入包、庫或模組。我們可以使用 as
語句和 import
語句來重新命名我們的包、庫或模組。
使用 import
和 as
語句重新命名我們的包的程式碼片段如下。
from functions import square as sq
print(sq(2))
輸出:
4
我們在 functions.py
檔案中將 square()
函式匯入為 sq
。
現在,我們可以通過編寫 sq()
在當前檔案中使用 square()
函式。這種方法非常方便且易於理解。
但是,如果我們想為一個函式使用多個名稱,則此方法會失敗。下一節中提到的方法解決了這個問題,並提供了一種解決方案,它還可以為一個函式處理多個名稱。
使用 Python 中的 package.function
語句使用指標重新命名函式
我們的 square()
函式在 functions.py
檔案中,我們可以通過首先在當前程式碼中匯入 funcitons.py
檔案並編寫 function.square()
來引用此函式。
這用作對原始函式的引用。我們可以將其值分配給程式碼中的任何變數,並使用該變數來呼叫函式。
下面提供的程式碼片段使我們能夠了解此方法的工作原理。
import functions
sq = functions.square
print(sq(3))
輸出:
9
通過將 functions.square
的引用分配給 sq
,我們將 functions.square()
函式重新命名為 sq()
。
然後我們使用重新命名的 sq()
函式來計算並列印 3
的平方。在為同一個函式分配多個名稱時,此方法非常有用。
為此,我們必須將 functions.square
的值分配給多個變數。下面的程式碼示例向我們展示瞭如何實現這一點。
import functions
sq = functions.square
sq1 = functions.square
sq2 = functions.square
print(sq(3))
print(sq1(3))
print(sq2(3))
輸出:
9
9
9
我們在同一個程式碼檔案中用三個不同的名字呼叫了同一個 functions.square()
函式。此方法適用於函式的多個名稱。
它也可以用於多種功能。這種方法唯一的問題是它有點程式碼密集,感覺非常冗餘。
下一節討論的方法解決了這個問題。
在 Python 中使用指標和引用字典重新命名函式
我們可以使用原始函式的引用字典來為多個原始函式分配多個名稱。
這種方法實現起來很簡單。我們必須為原始參考分配一個鍵。
然後,我們可以通過使用帶有分配鍵的字典名稱來訪問對原始函式的引用。以下程式碼片段顯示了此方法的工作實現。
import functions
functionsdict = {
"square": functions.square,
"cube": functions.cube
}
c = functionsdict["cube"]
print(c(3))
輸出:
27
我們建立了一個字典,為原始函式的所有引用分配一個鍵。然後我們使用 functionsdict
字典和相應的鍵 cube
將 functions.cube
重新命名為 c
。
最後,我們使用 c()
函式來列印 3
的立方。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn