python - 以相同的方式为 Python 中的多个类重新定义 __str__ 方法
问题描述
我有多个类,如果我实例化其中的任何一个,我希望能够通过重新定义这些类的str方法来“打印”实例化的对象。str方法对于所有类都是完全相同的,我不想在每个类下都重复这个方法。如何为所有类执行此操作,而不必在每个类下定义str?班级装饰员会在这里帮忙吗?
class testClass1:
def __init__(self, value):
self.value = value
def __str__(self):
return(self.value + 5)
class testClass2:
def __init__(self, value):
self.value = value
def __str__(self):
return(self.value + 5)
test1 = testClass1(2)
print(test1)
解决方案
您可以定义一个具有所需功能的父类并在每个子类中继承它:
class Stringer:
def __str__(self):
return(str(self.value + 5))
class testClass1(Stringer):
def __init__(self, value):
self.value = value
class testClass2(Stringer):
def __init__(self, value):
self.value = value
test1 = testClass1(2)
print(test1)
#7
test2 = testClass2(5)
print(test2)
#10
推荐阅读
- ffmpeg - 如何从 ffmpeg 流式传输到多个 udp 客户端?
- java - Java Math.sqrt 函数向下舍入为零
- go - 查找特定类型的所有函数
- transactions - 如果在插入 memtable 时发生崩溃,leveldb 是否仍能保持事务性?
- bert-language-model - 是否有类似的“datacollator”代码可以使用 pytorch 将屏蔽的 n-gram 应用于屏蔽的语言模型?
- scala - 如何转换 DF 以添加包含在另一列中的字符串列表的列
- reactjs - 如何在 next.js 中显示来自 websockets 的数据并做出反应?
- wordpress - WordPress WP_Query 限于 5 个元查询子句
- java - 如何反序列化为 Map
与 com.google.gson.JsonObject? - angular - 使用按钮单击从靛蓝和粉红色切换到紫色和绿色主题