XuM*_*MuK 1 python function python-3.x
例如:
def some_function(a):
if a == 1:
return x ** 2
else:
return x - 1000
some_function(a)(b)
Run Code Online (Sandbox Code Playgroud)
因此,当我们拥有a==1,获得b**2并在所有其他情况下b-1000.
甚至可能在python中,获得一些未知变量,它将被另一个变换?
问题恰恰是没有触及b,直接功能将无法实现.
应该工作的代码是some_function(a)(b).
这通常被称为currying或partial函数.它在python中看起来像这样
from functools import partial
def some_function(a, x):
if a == 1:
return x ** 2
else:
return x - 1000
Run Code Online (Sandbox Code Playgroud)
通常,您存储部分功能
a = 1
func = partial(some_function, a)
func(5)
Run Code Online (Sandbox Code Playgroud)
但您也可以将它们用作一个衬垫.
partial(some_function, 1)(5)
partial(some_function, 0)(1500)
Run Code Online (Sandbox Code Playgroud)
或者,您可以some_function返回一个函数
def some_function(a):
if a == 1:
return lambda b: b **2
else:
return lambda b: b - 1000
Run Code Online (Sandbox Code Playgroud)
partial然而,使用通常是更灵活的方法.
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |