[英]How do I refactor different classes with the same methods in Python?
In this minimum working example, Classes A and B do the same thing but their methods are slightly different.在这个最小的工作示例中,A 类和 B 类做同样的事情,但它们的方法略有不同。 They save an item to their respective lists and display them.他们将项目保存到各自的列表中并显示出来。 However, I would like to define an abstract Save class which refactors a lot of the repeated code here.但是,我想定义一个抽象的 Save 类,它在这里重构了很多重复的代码。 Is there a way to do this?有没有办法做到这一点?
class A():
def __init__(self):
self.items = []
def save(self, item):
item = "This is {}".format(item)
self.items.append(item)
def display(self):
return self.items
class B():
def __init__(self):
self.items = []
def save(self, item):
item = "This is {}...!".format(item)
self.items.append(item)
def display(self):
return self.items
a = A()
a.save('A')
a.save('B')
print(a.display())
b = B()
b.save('C')
b.save('D')
print(b.display())
Output输出
['This is A', 'This is B']
['This is C...!', 'This is D...!']
class Save:
def __init__(self):
self.items = []
def save(self, item):
item = self.format_item(item)
self.items.append(item)
def display(self):
return self.items
class A(Save):
def format_item(self, item):
return 'This is {}'.format(item)
class B(Save):
def format_item(self, item):
return 'This is {}...!'.format(item)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.