>> repr(hehe) '' 我想要: >>> repr(hehe) 'hehe function creat-6ren">
gpt4 book ai didi

python - 如何更改 Python 函数的表示?

转载 作者:太空狗 更新时间:2023-10-29 17:56:15 24 4
gpt4 key购买 nike

>>> def hehe():
... return "spam"
...
>>> repr(hehe)
'<function hehe at 0x7fe5624e29b0>'

我想要:

>>> repr(hehe)
'hehe function created by awesome programmer'

我该怎么做?将 __repr__ 放在 hehe 函数中不起作用。

编辑:

如果你们想知道我为什么要这样做:

>>> defaultdict(hehe)
defaultdict(<function hehe at 0x7f0e0e252280>, {})

我只是不喜欢它在这里显示的方式。

最佳答案

不,您不能更改函数对象的表示;如果你想添加文档,你会添加一个文档字符串:

def foo():
"""Frob the bar baz"""

并使用 help(foo)print foo.__doc__ 访问它。

可以使用自定义 __repr__ 创建一个可调用对象,它的行为就像一个函数:

class MyCallable(object):
def __call__(self):
return "spam"
def __repr__(self):
return 'hehe function created by awesome programmer'

演示:

>>> class MyCallable(object):
... def __call__(self):
... return "spam"
... def __repr__(self):
... return 'hehe function created by awesome programmer'
...
>>> hehe = MyCallable()
>>> hehe
hehe function created by awesome programmer
>>> hehe()
'spam'

关于python - 如何更改 Python 函数的表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20093811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com