如何更改功能的打印方式?

时间:2017-09-08 02:42:09

标签: python

假设我有一个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 调用方法创建一个类来实现这一目标,但是如果可能的话,我想只使用函数来完成它。

0 个答案:

没有答案