gpt4 book ai didi

python - 动态重载运算符

转载 作者:行者123 更新时间:2023-12-02 18:51:18 26 4
gpt4 key购买 nike

我想知道是否有办法在运行时重载Python中的运算符。例如:

class A:
pass
a = A()
a.__str__ = lambda self: "noice"
print(str(a))

所需的输出是 "noice" ,但给定的代码使用 object str 的实现相反,函数会产生如下内容: <__main__.A object at 0x000001CAB2051490> .

为什么代码不使用我的函数重载的重写实现?

使用的Python版本是3.9.2 .

最佳答案

当您调用 str(a) 时,它会解析为等效于 a.__class__.__str__(a),而不是 a.__str__().

>>> A.__str__ = lambda self: "noice"
>>> str(a)
'noice'

关于python - 动态重载运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66738773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com