如何覆盖str的子类“按%格式化”的方法?

时间:2019-06-10 04:23:58

标签: python python-3.x

我正在创建一个继承str类但使用%运算符的类,不是用于格式化,而是用于制作如下代码。

print(StrSubclass("11") % 2)
# "11 % 2"

我想为此重写方法,但是我无法通过调用__getattribute__方法来找到它,该方法打印出所调用的属性(什么都没有打印出来)。

请教我如何实现此方法(或者如果不可能的话)。

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用__mod__()方法重载<div class="container"> <div class="row"> <div class="col-12 col-sm-12 col-md-4">Box 1</div> <div class="col-6 col-sm-6 col-md-4">Box 2</div> <div class="col-6 col-sm-6 col-md-4">Box 3</div> </div> </div> 运算符:

%

输出:

class StrSubClass(str):
    def __mod__(self, other):
        return "{} % {}".format(self, other)

print(StrSubClass("11") % 2)