или возьмите pcntl_fork
, fork
несколько новых потоков для выполнения curl_exec
. Но это не так хорошо, как curl_multi
.
append
является деструктивной операцией (он изменяет список вместо того, чтобы возвращать новый список). Идиоматический способ выполнения неразрушающего эквивалента append
был бы
l = [1,2,3]
print l + [4] # [1,2,3,4]
print l # [1,2,3]
, чтобы ответить на ваш вопрос, я полагаю, что если append
вернул недавно измененный список, пользователи могут подумать, что это были неразрушающими, то есть они могли бы писать код типа
m = l.append("a")
n = l.append("b")
и ожидать, что n
будет [1,2,3,"b"]
Одним из советов было бы избежать использования ключевых слов или функций в качестве имен переменных. В вашем коде выше вы используете список как переменную:
list = [1, 2, 3]
Я бы посоветовал использовать list
в качестве имени переменной, поскольку list на самом деле уже определен как встроенный тип. Как заметил ChaseTheSun и squiguy, там не так много, а затем
l = [1, 2, 3]
l.append(4)
print l ## [1, 2, 3, 4]
Это соглашение в Python, что методы, которые мутируют последовательности, возвращают None
.
Рассмотрим:
>>> a_list = [3, 2, 1]
>>> print a_list.sort()
None
>>> a_list
[1, 2, 3]
>>> a_dict = {}
>>> print a_dict.__setitem__('a', 1)
None
>>> a_dict
{'a': 1}
>>> a_set = set()
>>> print a_set.add(1)
None
>>> a_set
set([1])
Начиная с Python 3.3, теперь это больше явно документировано :
Некоторые классы коллекций изменяемы. Методы, которые добавляют, вычитают или изменяют их члены на месте и не возвращают определенный элемент, никогда не возвращают сам экземпляр коллекции, но
None
.Часто задаваемые вопросы по дизайну и истории дает обоснование за этим проектным решением (относительно списков):
Почему нет
list.sort(
) возвращает отсортированный список?] В ситуациях, когда важна производительность, создание копии списка только для сортировки было бы расточительным. Поэтому
list.sort()
сортирует список на месте. Чтобы напомнить вам об этом, он не возвращает отсортированный список. Таким образом, вы не будете обманываться, чтобы случайно переписать список, когда вам нужна отсортированная копия, но также необходимо сохранить несортированную версию.В Python 2.4 появилась новая встроенная функция -
sorted()
- был добавлен. Эта функция создает новый список из предоставленного итерации, сортирует его и возвращает его.