假设我有以下函数g
:
import numpy as np
from numpy.polynomial import Polynomial as P
def g(x):
return np.log(x)
我有以下NumPy多项式q
:
q = P([0, 1])
我想把它们放在一起:
fancy = g / q
# TypeError: unsupported operand type(s) for /: 'Polynomial' and 'function'
这样我就可以调用fancy(x)
,这样就相当于说:
g(x) / q(x)
仅仅说:
应该是微不足道的def fancy(x):
return g(x) / q(x)
但不,我需要可调用函数本身,因为g
在循环的每次迭代中被重新定义。
答案 0 :(得分:0)
fancy = lambda x : g(x) / q(x)
应该给你你想要的东西。 lambda
表达式是python支持动态创建函数对象的一种方式。我说'一'是因为你可以def
一个函数不止一次,因为它与分配一个lambda表达式几乎完全相同,定义一个函数对象并将它赋给一个引用。