簡體   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