重新命名 Python 函式指標

Muhammad Maisam Abbas 2023年1月30日 2022年5月17日
  1. 使用 Python 中的 getattr() 函式使用指標重新命名函式
  2. 使用 Python 中的 import 語句使用指標重新命名函式
  3. 使用 Python 中的 package.function 語句使用指標重新命名函式
  4. 在 Python 中使用指標和引用字典重新命名函式
重新命名 Python 函式指標

本教程將討論在 Python 中使用指標重新命名函式的不同方法。

使用 Python 中的 getattr() 函式使用指標重新命名函式

我們有一個名為 functions.py 的檔案,其中我們定義了兩個名為 squarecube 的函式。

我們可以使用幾種方法以其他名稱訪問這些函式。有一個眾所周知的概念,即 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 語句來重新命名我們的包、庫或模組。

使用 importas 語句重新命名我們的包的程式碼片段如下。

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 字典和相應的鍵 cubefunctions.cube 重新命名為 c

最後,我們使用 c() 函式來列印 3 的立方。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

相關文章 - Python Function