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
广告