如何重载内置类型的运算符
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 事情。
是否可以将“>”重载为两个字符串上的运算符。这会很好,因为它可以在调试时允许自定义结果。就我而言,我还可以编辑源代码并添加打印件等,但 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 事情。