Пусть Python и считается самым простым языком для изучения, это не отменяет существования сотен тонкостей и подводных камней.
Так уж у нас прижилось, что
Так же на эту тему есть пара интересных примеров сукрал одолжил с StackOverflow)
Пример №1
Случай редкий, да и визуально может показаться, что всё нормально. Просто вспомним, что такие операторы нельзя использовать с функциями, а так же с объектами, которые не реализуют iadd и add.
Пример №2
А всё почему? А потому, что`.extend()`
#python #разработка
Так уж у нас прижилось, что
.extend() и обычное присваивание некоторые разработчики считают равноценными. Но это ошибка, так как .extend() изменяет существующий список, а сложение создает новый список из двух переданных.Так же на эту тему есть пара интересных примеров с
.extend() и оператором += (Пример №1
list1 = [5, 6]
list2 = [7, 8]
def get_list():
return list1
get_list().extend(list2) # ✅ Работает
get_list() += list2 # ❌ SyntaxError
Случай редкий, да и визуально может показаться, что всё нормально. Просто вспомним, что такие операторы нельзя использовать с функциями, а так же с объектами, которые не реализуют iadd и add.
Пример №2
my_tuple = ([1, 2], [3, 4], [5, 6])
my_tuple[0].extend([10, 11]) # works
my_tuple[0] += [10, 11] # TypeError
А всё почему? А потому, что`.extend()`
изменяет список на месте, а += пытается создать новый список и присвоить его элементу кортежа, что невозможно, так как кортеж — неизменяемый.#python #разработка
1👍10