Метод sort
принимает в качестве параметра key
функцию, вы спрашиваете, почему? Итак, он принимает функцию, потому что если вы сделаете takeSecond(elem)
, то Python просто вернет значение.
Если вы реализуете его таким образом:
random.sort(key=takeSecond((1, 2)))
Оно равно это:
random.sort(key=2) # Because the function returns 2 (elem[1]).
И это неверно. Итак, вы предоставляете методу sort
функцию, которую он может вызвать, я покажу вам функцию, которая принимает другую функцию в качестве аргумента для лучшего понимания.
Вот она:
def get_func(function, values):
for item in values:
function(item) # For every item in the list it'll execute this function.
Итак, функция получает функцию и использует ее, равно как метод sort
ее использует.