在python中有"应用"这样的东西吗?

X''*_*X'' 2 python wolfram-mathematica

我想知道,python -let中是否有一个函数现在调用它apply- 它执行以下操作:

apply(f_1, 1) = f_1(1)
apply(f_2, (1, 2)) = f_1(1, 2)
...
apply(f_n, (1, 2,..., n)) = f_n(1, 2,..., n) # works with a tuple of proper length 
Run Code Online (Sandbox Code Playgroud)

因为它确实存在于例如.A +Mathematica以前它对我来说真的很有用.干杯!

use*_*342 6

您可以使用*运算符获得相同的效果:

f_1(*(1, 2)) = f_1(1, 2)
...
Run Code Online (Sandbox Code Playgroud)

后面的表达式*不必是元组,它可以是任何计算结果的表达式.

Python还有一个内置apply函数,可以满足您的期望,但是*自Python 2.3以来,它已经过时,有利于运算符.如果apply由于某种原因需要并且想要避免弃用的污点,那么实现一个是微不足道的:

def my_apply(f, args):
    return f(*args)
Run Code Online (Sandbox Code Playgroud)


voi*_*hos 6

Python具有语言级功能,称为"参数解包",或者只是"splat".

# With positional arguments
args = (1, 2, 3)
f_1(*args)

# With keyword arguments
kwargs = {'first': 1, 'second': 2}
f_2(**kwargs)
Run Code Online (Sandbox Code Playgroud)