我在python中有一个单参数函数列表,我想要应用相同的缩放/转换操作。
函数f(x)的缩放/平移如下:
f'(x,a,b,c,d)= a + b * f(c *(x - d))
例如,如果我的原始函数定义为:
f(x)= 3 * x
我想将其修改为:
f'(x,a,b,c,d)= a + b *(3 *(c *(x - d)))
理想情况下使用装饰器(或其他一些可以应用于列表中每个函数的可重用操作)。
是否有一种pythonic方法来实现这一点,以便每个转换都不需要为我拥有的每个函数进行硬编码?
如果问题不清楚,请道歉 - 事先感谢任何建议。
答案 0 :(得分:1)
<div id="top_navbar">
<ul>
<li>
<a href="https://accounts.google.com/signin/v2/identifier?flowName=GlifWebSignIn&flowEntry=ServiceLogin" class="Gmail" target="_blank">Gmail</a>
</li>
<li>
<a href="https://images.google.ca/" class="Images" target="_blank">Images</a>
</li>
<li>
<div onclick="myFunction()"><i class="material-icons apps">apps</i></div>
</li>
<li>
<a href="#"><i class="material-icons notifications">notifications</i></a>
</li>
<li>
<a href="#"><i class="material-icons account">account_circle</i></a>
</li>
</ul>
</div>
这给出了例如:
def f(x):
return 3*x
def makeFPrime(func):
def inner(x, a, b, c, d):
return a + b * (3*(c*func(x-d)))
return inner
或者,使用f2 = makeFPrime(f)
f2(2,1,1,1,2)
1
f2(2,1,1,1,0)
19
作为装饰者:
makeFPrime
然后f(2,1,1,1,2)返回1