繁体   English   中英

如何在 Python 中使用相同的方法重构不同的类?

[英]How do I refactor different classes with the same methods in Python?

在这个最小的工作示例中,A 类和 B 类做同样的事情,但它们的方法略有不同。 他们将项目保存到各自的列表中并显示出来。 但是,我想定义一个抽象的 Save 类,它在这里重构了很多重复的代码。 有没有办法做到这一点?

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())

输出

['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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM