Skip to main content
 首页 » 编程设计

将应用于另一个变量的 Python 函数

2025年05月04日8落叶

例如:

def some_function(a): 
     if a == 1: 
          return x ** 2 
     else: 
          return x - 1000 
 
some_function(a)(b) 

作为结果,当我们有 a==1 时,获得 b**2 并且在所有其他情况下为 b-1000。

在 python 中是否有可能返回一些未知变量,这些变量将被另一个变量替换?

问题恰恰是关于不接触b,它将无法直接访问函数。

应该工作的代码是some_function(a)(b)。

请您参考如下方法:

这通常称为柯里化(Currying) 或部分 函数。在 python 中看起来像这样

from functools import partial 
 
def some_function(a, x): 
    if a == 1: 
        return x ** 2 
    else: 
        return x - 1000 

通常,您存储偏函数

a = 1 
func = partial(some_function, a) 
func(5) 

但您也可以只将它们用作一个衬垫。

partial(some_function, 1)(5) 
partial(some_function, 0)(1500) 

或者,您可以让 some_function 返回一个函数

def some_function(a): 
    if a == 1: 
        return lambda b: b **2 
    else: 
        return lambda b: b - 1000 

使用 partial 通常是更灵活的方法。