Python - AI 助手

Python functools partialmethod() 函式



Python 的 partialmethod() 函式類似於 partial 函式。主要區別在於 partialmethod() 用於類方法內部。

該函式允許我們從另一個函式中預定義特定數量的引數,從而建立一個新的函式。partial() 函式用於透過減少函式所需的引數數量來指定函式。

語法

以下是 partialmethod() 函式的語法。

functools.partialmethod(func, /, *args, **keywords)

引數

partialmethod() 函式的引數如下所示:

  • / : 這表示所有引數都必須按位置指定。
  • *args : 這是用於為新函式預先設定的位置引數。
  • **keywords : 這是用於預定義新函式的關鍵字引數。

返回值

此函式返回一個新的部分方法描述符。

示例 1

在下面的示例中,我們透過使用 partialmethod() 函式將預定義的值相乘來將給定值加倍。

import functools
class Calculator:
    def multiply(x, y, z):
       return y*z
    double = functools.partialmethod(multiply, 4)
a = Calculator()
print(a.double(10))
print(a.double(20))

輸出

結果如下所示:

40
80

示例 2

此程式碼定義了 Adder 類,該類具有一個 add 方法,該方法使用 partialmethod() 函式對三個數字求和。add_ten 方法將第一個引數預先填充為 10,其餘引數在方法呼叫期間提供。

import functools
class Adder:
    def add(self, x, y, z):
        return x + y + z
    add_ten = functools.partialmethod(add, 10)
adder = Adder()
print(adder.add_ten(10, 20))  
print(adder.add_ten(15, 25))

輸出

程式碼如下所示:

40
50

示例 3

在這裡,我們正在使用 partialmethod() 函式定義具有 power 方法的 power 類,該方法將基數提高到指數。當使用 partialmethod() 函式呼叫 square 時,它將返回給定數字的平方。

import functools
class Power:
  def power(self, base, exponent):
    return base**exponent
  square = functools.partialmethod(power, exponent = 4)
power = Power()
print(power.square(16))
print(power.square(8))

輸出

輸出如下所示:

65536
4096
python_modules.htm
廣告