Создание цепочки методов в python приводит к ошибке - PullRequest
0 голосов
/ 06 ноября 2019

Я думал, что в Python мне разрешено выполнять цепочку методов.

basket = [1,3,2,4,6,8]

basket.append(7)
basket.sort()
basket.reverse()

Это работает.

basket.append(7).sort().reverse()

Это не так.

AttributeError: 'NoneType' object has no attribute 'sort'

Я не уверен, что здесь происходит, но я предполагаю, что это происходит, потому что методы на месте приводят к «NoneType» result = basket.sort(), и, следовательно, второй метод будет выполняться на результат, а неоригинальный объект.

Может кто-нибудь помочь мне, как выполнить эти операции, не написав новую строку для каждого метода?

1 Ответ

5 голосов
/ 06 ноября 2019

Поскольку append sort и reverse - все методы "на месте", поэтому они ничего не возвращают, вместо этого они обновляют исходный список, лучшим способом будет:

print(sorted(basket + [7], reverse=True))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...