👍2
Почему это важно
Симметричная структура кода (обе переменные инициализируются одинаково на всех уровнях) создаёт иллюзию, что 𝚐𝚕𝚘𝚋𝚊𝚕 и 𝚗𝚘𝚗𝚕𝚘𝚌𝚊𝚕 работают одинаково — но 𝚐𝚕𝚘𝚋𝚊𝚕 игнорирует промежуточную область 𝚘𝚞𝚝𝚎𝚛, а 𝚗𝚘𝚗𝚕𝚘𝚌𝚊𝚕 работает именно с ней.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Что выведет код?
Anonymous Quiz
17%
[1, 2, 3] [1, 2, 4]
53%
[1, 2, 3, 4] [1, 2, 3, 4]
27%
[1, 2, 3] [1, 2, 3, 4]
3%
Error
Почему это важно
Задача демонстрирует разницу между мутацией объекта (𝚊𝚙𝚙𝚎𝚗𝚍, +=) и созданием нового объекта (+). При цепочке присваиваний с изменяемыми объектами легко получить неожиданное разделение состояния между переменными.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Почему это важно
Это неочевидное поведение часто ломает код при портировании с Python 2 на 3. Решение — вынести значение в итерируемое: [𝚡 𝚏𝚘𝚛 𝚡 𝚒𝚗 [𝚡] 𝚏𝚘𝚛 𝚒 𝚒𝚗 𝚛𝚊𝚗𝚐𝚎(𝟹)] или использовать значение по умолчанию в лямбде.
Please open Telegram to view this post
VIEW IN TELEGRAM
🙈2👍1
Почему это важно
Один «лишний» символ, легко превращает значение в кортеж и ломает код далеко от места ошибки (например, при работе с dict, URL, числами), поэтому одноэлементные кортежи всегда лучше записывать явно как (𝚟𝚊𝚕𝚞𝚎,), а не полагаться на неочевидный синтаксис.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Что выведет код?
Anonymous Quiz
43%
[1, 2, 3] [4, 5]
4%
[4, 5] [1, 2, 3]
43%
[4, 5] [4, 5]
10%
Error
Почему это важно
Потом что [:] = — это не то же самое, что простое =, и любое незаметное срезовое присваивание может поменять список, который уже разделяют несколько переменных или даже разные части кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍1
Весь год вы носили футболки и джинсы… Хватит!
Заглядывайте к нам в виртуальную примерочную и выбирайте себе идеальный скин для встречи Нового года!
Делитесь в комментариях, какой скин вам выпал 👀
Заглядывайте к нам в виртуальную примерочную и выбирайте себе идеальный скин для встречи Нового года!
Делитесь в комментариях, какой скин вам выпал 👀
🎉2
Почему это важно
Общий изменяемый атрибут класса легко превращается в неявный «shared state» между инстансами и рождает трудноуловимые баги; если список должен быть отдельным у каждого объекта, его нужно создавать в __init__ как 𝚜𝚎𝚕𝚏.𝚒𝚝𝚎𝚖𝚜 = [].
Please open Telegram to view this post
VIEW IN TELEGRAM
✍6
🤝6❤1