Por que python max ('a', 5) retorna o valor da string?

Rastreando umValueError: cannot convert float NaN to integer Eu descobri que a linha:

max('a', 5)
max(5, 'a')

retornaráa em vez de 5.

No caso acima, usei a sequência de exemploa mas no meu caso atual a string é umaNaN (o resultado de um processo de ajuste que falhou ao convergir).

Qual é a lógica por trás desse comportamento? Por que o python não reconhece automaticamente que existe uma string e que ele deve retornar o número?

Ainda mais curioso é quemin() faz trabalhar como esperado desde:

min('a', 5)
min(5, 'a')

retorna5.

questionAnswers(2)

yourAnswerToTheQuestion