def func_wai(f,x):
x[0]-=4
print(f(x[0]))#这里必须有一个参数不然输出的是匿名函数,参数可以是任意的值 #输出5 1+2+6-4
class xx:
def __init__(self):
self.xx=[6,5]
self.ngm=5
def func(self,x,y):
return x+y+self.xx[0]
def nimin(self,x,y):
f1 = lambda a: self.func(x,y)
func_wai(f1,self.xx)
xs=xx()
f2=xs.nimin(1,2)
通过匿名函数实现在类外改变self.xx
《深度学习入门基于python的理论与实践》p111二层神经网络类中的求梯度函数也是这样实现的,但是要注意需要改变的参数必须是像list、ndarray这样的可变类型