如何重载内置类型的运算符

How to overload operators on built-in types

是否可以将“>”重载为两个字符串上的运算符。这会很好,因为它可以在调试时允许自定义结果。就我而言,我还可以编辑源代码并添加打印件等,但 Monkey Patch 更快并且无需重建即可使用。

期望的结果是键入(例如):

>>>import os
>>>"string1" > "string2"

会调用我创建的一些自定义代码。其他选项可能是使用装饰器,或此处的一些解决方案:

Redirect stdout to a file in Python?

如果你从 str 推导出 class 我想你可以:

class pipe_string(str):
    def __gt__(self, other):
        with open(other, "w") as file:
            file.write(self)

pipe_string("foo") > "bar.txt"

但我认为我会阻止它。最好通过 python 将您想要发送的任何内容发送到 stdout,然后使用您的 shell 做 shell 事情。