我注意到我可以做到这一点,并且至少从乍看之下就可以摆脱它:
from pprint import pprint as print
方便。但是我对此感到不好。如果我在不平凡的程序中尝试使用此方法,将会给我带来什么样的痛苦?
答案 0 :(得分:4)
什么都不会爆炸,因为此导入只会更改您本地的namespace。
命名空间是一个很棒的主意-让我们做更多的事吧!
您可以继续执行此操作,而不必担心会破坏其他名称空间或被污垢吞噬。
但是请注意,pprint
call signature与print
不同,因此可能需要调整包含模块中的某些print
行。我的建议是使用通常的名称pprint
导入它,并使用文本编辑器的查找/替换功能相应地更改现有的print
调用。
答案 1 :(得分:4)
请注意,pprint
是用于转储Python数据结构的,因为它总是打印传递给它的数据结构中每个对象的__repr__
方法的输出,因此不适合替代print
:
>>> b = '''Hemingway's "The Old Man and the Sea"'''
>>> print(b)
Hemingway's "The Old Man and the Sea"
>>> pprint(b)
'Hemingway\'s "The Old Man and the Sea"'
因此,如果用print
替换内置的pprint
函数并想打印一些可读的消息,您会发现所有这些意外的引号和转义序列看起来很有趣。