Я готовлюсь к экзамену, и всегда возникают вопросы, спрашивающие, меняет ли метод объект на месте или создает новый объект. Интересно, применяются ли к этому какие-либо общие правила или мне просто нужно запомнить результат для разных методов?
Примеры из моего экзамена:
s = 'horse'
s.upper()
print(s)
это сгенерирует horse
, а не HORSE
, и, следовательно, s не изменяется на .upper
, однако
l = [1, 3, 2]
l.sort()
print(l)
будет генерировать [1, 2, 3]
, а не [1, 3, 2]
, и, следовательно, l изменяется на .sort
Есть ли какие-либо способы провести различие между ними?