鉴于 Python 的动态性,如果这不可能,我会感到震惊:
我想更改sys.stdout.write
.
我从这个答案中得到了我的另一个问题的想法:https ://stackoverflow.com/a/24492990/901641
我试着简单地写这个:
original_stdoutWrite = sys.stdout.write
def new_stdoutWrite(*a, **kw):
original_stdoutWrite("The new one was called! ")
original_stdoutWrite(*a, **kw)
sys.stdout.write = new_stdoutWrite
但它告诉我AttributeError: 'file' object attribute 'write' is read-only
。
这是一个很好的尝试,可以防止我做一些可能(可能)愚蠢的事情,但我真的很想继续做下去。我怀疑解释器有某种我可以修改的查找表,但我在谷歌上找不到类似的东西。__setattr__
也不起作用 - 它返回了关于属性为只读的完全相同的错误。
我特别在寻找 Python 2.7 解决方案,如果这很重要的话,尽管没有理由拒绝提供适用于其他版本的答案,因为我怀疑其他人将来会在这里看到关于其他版本的类似问题。