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)