Автор: CoolPython
Один интересный факт из Python. Вы, наверное, знали, что для строк определен оператор умножения и что можно делать так:
>>> 'привет ' * 4 'привет привет привет привет '
То же, вообще говоря, работает с другими контейнерами, например, с кортежами:
>>> ('привет',) * 3 ('привет', 'привет', 'привет')
И с этим все хорошо, пока внутри контейнера не появляется ссылка на изменяемый объект. Например, на словарь:
>>> d = [{'key': 'val'}] * 2 >>> d [{'key': 'val'}, {'key': 'val'}]
Потому что теперь каждый из двух словарей доступен по одной и той же ссылке:
>>> d[0]['key'] = '' >>> d [{'key': ''}, {'key': ''}]
Упс, отстрелили себе ногу. Умножение — это валидный способ создавать составные объекты только если вложенные неизменяемы.
В этом руководстве мы разберем все, что нужно знать о символах перехода на новую строку…
Блок if __name__ == "__main__" в Python позволяет определить код, который будет выполняться только при…
Давайте разберем, как настроить модульные тесты для экземпляров классов. Мы напишем тесты для проверки функциональности…
Функции Python - это вызываемые объекты. Это означает, что для выполнения кода, определенного в функции,…
Многие программы на Python нуждаются в навигации по файловой системе для чтения и записи файлов.…
Юнит-тестирование с помощью unittest заключается в создании тест-кейсов для проверки функциональности отдельных частей вашего кода.…