正如我们在 Python 3 中所知,print()
是一个函数,是否可以创建它的装饰版本并包装在 json.dumps(indent=4)
中
例如
调用 print(mydict)
应该产生与 print(json.dumps(mydict, indent=4))
相同的结果
最佳答案
您不需要装饰器本身来做到这一点。只需定义一个新函数并将其命名为 print
:
import builtins
def print(*args, **kwargs):
builtins.print(json.dumps(*args, **kwargs, indent=4))
您可以使用如图所示的builtins
模块来访问原始打印功能。
问题在于,除了 print
之外,这样做并不会真正比调用新函数有任何好处,除非它会让人们感到困惑。
如果你想真的迷惑你可以存储 old_print = builtins.print
的人,将你的新函数定义为 my_print
(访问原始函数作为 old_print
) 然后执行 builtins.print = my_print
。然后,您修改后的 print
实际上将替换常规 print
,即使在其他对您的恶作剧一无所知的模块中也是如此。但这是一个更糟糕的想法。
关于python - 装饰 Python 的内置 print() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46658639/