Python - Neaten this append/extend条件

1 python list append extend

我有一个方法,我将接受单个对象或对象列表.我想添加传递给另一个列表的内容.目前,我的方法如下所示:

def appendOrExtend(self, item):
  if type(item).__name__ == "list":
    self.list.extend(item)
  else:
    self.list.append(item)
Run Code Online (Sandbox Code Playgroud)

在我看来应该有更多的Pythonic方式实现这一点,你能提出一个吗?

nos*_*klo 10

def append(self, item):
    self.list.append(item)
def extend(self, item):
    self.list.extend(item)
Run Code Online (Sandbox Code Playgroud)

一句话:没有办法做两件事.它会让您的方法变得有用,而不是更有用.它也更难测试和维护.此外,您的功能的用户已经知道她是否想要使用追加或扩展,因此通过提供单一方法,您将丢弃您的呼叫者/用户已经知道的信息.

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

def append(self, *items):
    self.list.extend(items)
Run Code Online (Sandbox Code Playgroud)

这样你可以调用方法

x.append('single item')
Run Code Online (Sandbox Code Playgroud)

要么

x.append(*list_of_items)
Run Code Online (Sandbox Code Playgroud)