Skip to main content
 首页 » 编程设计

Python之Neaten 这个追加/扩展条件

2025年05月04日9cmt

我有一个方法可以接受单个对象或对象列表。我想添加传递给另一个列表的任何内容。目前,我的方法是这样的:

def appendOrExtend(self, item): 
  if type(item).__name__ == "list": 
    self.list.extend(item) 
  else: 
    self.list.append(item) 

在我看来,应该有一种更 Pythonic 的方法来实现这一点,你能推荐一个吗?

请您参考如下方法:

def append(self, item): 
    self.list.append(item) 
def extend(self, item): 
    self.list.extend(item) 

底线:没有同时完成这两件事的方法。它会混淆并使您的方法变得不那么有用,而不是更有用。它也更难测试和维护。此外,您函数的用户已经知道她是想使用追加还是扩展,因此通过提供单一方法,您将丢弃调用者/用户已经知道的信息。

另一种编写方式是使用打包/解包参数语法:

def append(self, *items): 
    self.list.extend(items) 

这样你就可以调用这个方法了

x.append('single item') 

或

x.append(*list_of_items)