假设我有一个Python函数,它生成一个参数化函数,如下所示:
def fgen(a):
def f(x):
return a * x
f.__doc__ = """Multiply x by {}""".format(a)
f.__name__ = 'F{}'.format(a)
return f
如果我现在这样使用它:
f2 = fgen(2)
print(f2(2))
help(f2)
print(f2)
我得到了这个输出:
4
Help on function F2 in module __main__:
F2(x)
Multiply x by 2
<function fgen.<locals>.f at 0x1104a5840>
我想知道最后一行是否可能是这样的:
y = 2 * x
我想也许你可以这样做:
f.__str__ = lambda object: 'y = {} * x'.format(a)
但这似乎对打印的内容没有任何影响。 f。 repr 也没有。
我知道我可以使用 str 和调用方法创建一个类来实现这一目标,但是如果可能的话,我想只使用函数来完成它。