首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重写str子类的"formatting by %“方法?

如何重写str子类的"formatting by %“方法?
EN

Stack Overflow用户
提问于 2019-06-10 12:23:58
回答 1查看 65关注 0票数 0

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

代码语言:javascript
复制
print(StrSubclass("11") % 2)
# "11 % 2"

我想重写这个方法,但是我无法通过调用打印所调用的属性的__getattribute__方法来找到它(没有打印任何内容)。

请教我如何实现这一点(如果不可能)。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-10 12:30:57

可以使用__mod__()方法重载%运算符:

代码语言:javascript
复制
class StrSubClass(str):
    def __mod__(self, other):
        return "{} % {}".format(self, other)

print(StrSubClass("11") % 2)

输出:

代码语言:javascript
复制
11 % 2
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56520490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档