Яким буде результат у останньому рядку?
Anonymous Quiz
33%
['Viktor']
2%
['Hi']
60%
['Hi', 'Viktor']
5%
Не знаю 🤷♂️
🤔3
Відповідь: ['Hi', 'Viktor']
Пояснення:
Класи у Пайтоні можуть мати статичні атрибути, які задаються на етапі створення класу
Такі атрибути можуть бути використані й у об'єктах цього класу, але для них всіх (і класу і його об'єктів) такі атрибути будуть спільними — тобто вказуватимуть на один і той же об'єкт. Відповідно зміна у одному об'єкті змінить цей атрибут й у інших
Щоб задати початкове значення для атрибуту, використовуйте __init__
Якщо ж ви свідомо робите статичний атрибут, вказуйте тип ClassVar[list], щоб інші розробники знали про це
Спробувати самостійно | Підписатись
Пояснення:
Такі атрибути можуть бути використані й у об'єктах цього класу, але для них всіх (і класу і його об'єктів) такі атрибути будуть спільними — тобто вказуватимуть на один і той же об'єкт. Відповідно зміна у одному об'єкті змінить цей атрибут й у інших
Щоб задати початкове значення для атрибуту, використовуйте __init__
Якщо ж ви свідомо робите статичний атрибут, вказуйте тип ClassVar[list], щоб інші розробники знали про це
Спробувати самостійно | Підписатись
❌ Міф:
✅ Правда:
1.
Ключовими словами є
2. Замість
Але за правилами PEP8, треба використовувати саме це ім'я для звичайних методів, а
3.
Ви ж можете (але не варто) передати будь-яку іншу змінну, наприклад:
Оскільки
Не читайте іншихгазет каналів, читайте тільки наш ❤️
self — це ключове слово у Пайтоні, яке використовується для звернення до поточного об'єкта класу✅ Правда:
1.
self це не ключове словоКлючовими словами є
return, def та інші. Такі слова не можуть бути назвою змінної, оскільки це буде синтаксичною помилкою 🌚2. Замість
self можна підставити будь-щоАле за правилами PEP8, треба використовувати саме це ім'я для звичайних методів, а
cls — для методів класу (@classmethod) 😅3.
self це не звернення до поточного об'єкта класуself це змінна, яку Пайтон передає автоматично у методВи ж можете (але не варто) передати будь-яку іншу змінну, наприклад:
dict.__dir__(0) 🤯Оскільки
__dir__ це просто функція (якщо ми її викликаємо напряму з класу, і вона не позначена як @classmethod чи @staticmethod), то замість self ми можемо передати будь-що 👀Не читайте інших
👍4❤2🔥1
range(len(...)) — це буквально минуле століття, адже функція enumerate доступна ще з Python 2.3, і я бігме не розумію чому досі існує код як у прикладі зліва)Спробувати самостійно | Підписатись
У випадку необхідності об'єднати два словники — використовуйте
Ця операція доступна починаючи з Python3.9
Спробувати самостійно | Підписатись
| (бінарне або)Ця операція доступна починаючи з Python3.9
Спробувати самостійно | Підписатись
❤6🤯1🆒1 1
Якщо вам треба створити словник з однаковими значеннями, використайте
Цей метод заповнює новий словник з кожного елементу з першого аргументу
Варто зауважити, що значення
Тому, якщо це буде мутабельний об'єкт (словник, масив тощо), то краще використати варіант 1 — з швидким виразом (
Спробувати самостійно | Підписатись
dict.fromkeys()Цей метод заповнює новий словник з кожного елементу з першого аргументу
iterable як ключів та другого аргументу value як значення для усіх нихВарто зауважити, що значення
value не копіюється, а передається як єТому, якщо це буде мутабельний об'єкт (словник, масив тощо), то краще використати варіант 1 — з швидким виразом (
comprehension)Спробувати самостійно | Підписатись
❤3👍1 1
Якщо ви хочете робити такі ж самі картинки з кодом, вам всього лиш треба зайти на carbon.now.sh
Але у мене там дещо модифікований конфіг, базований на темі Material
Знайти ви його зможете у коментарях :)
Але у мене там дещо модифікований конфіг, базований на темі Material
Знайти ви його зможете у коментарях :)
👍3💅3
Що таке взагалі мутабельність, і чому про це питають на співбесіді? 🤔
Сет — мутабельний, тому коли ми передаємо його як аргумент, Пайтон передає його референс, відповідно навіть при відкладеному виконанні ми побачимо актуальне значення
Числа у Пайтоні — іммутабельний об'єкт. Але якщо його запихнути у список — уже ні? (приклад 3)
Ні, число досі іммутабельне, а саме список — ні. У цьому прикладі ми не змінюємо число, а оновлюємо конкретну змінну (перший елемент списку)
Але чому ж у прикладі №2 виводиться неактуальне значення?
Через те саме
Числа — іммутабельні, і тому Пайтон передає НЕ референс, а реальне значення
Ці нюанси важливі для розуміння як працює Пайтон всередині, і саме тому їх так полюбляють запитувати на технічних співбесідах 🤓
Спробувати самостійно | Підписатись
Сет — мутабельний, тому коли ми передаємо його як аргумент, Пайтон передає його референс, відповідно навіть при відкладеному виконанні ми побачимо актуальне значення
Числа у Пайтоні — іммутабельний об'єкт. Але якщо його запихнути у список — уже ні? (приклад 3)
Ні, число досі іммутабельне, а саме список — ні. У цьому прикладі ми не змінюємо число, а оновлюємо конкретну змінну (перший елемент списку)
Але чому ж у прикладі №2 виводиться неактуальне значення?
Через те саме
Числа — іммутабельні, і тому Пайтон передає НЕ референс, а реальне значення
Ці нюанси важливі для розуміння як працює Пайтон всередині, і саме тому їх так полюбляють запитувати на технічних співбесідах 🤓
Спробувати самостійно | Підписатись
Щоб додати числа — просто використай
А чому тільки числа?)
Ставте 💅, якщо хочете побачити мою реалізацію
Ставте 😎, якщо самі знаєте як це зробити
Спробувати самостійно | Підписатись
sum()А чому тільки числа?)
sum() може додати що завгодно, тільки передайте параметр start, оскільки за замовчуванням там стоїть 0Ставте 💅, якщо хочете побачити мою реалізацію
Ставте 😎, якщо самі знаєте як це зробити
Спробувати самостійно | Підписатись
💅17😎2 2 1 1
Python просто | з Коропом
Щоб додати числа — просто використай sum() А чому тільки числа?) sum() може додати що завгодно, тільки передайте параметр start, оскільки за замовчуванням там стоїть 0 Ставте 💅, якщо хочете побачити мою реалізацію Ставте 😎, якщо самі знаєте як це зробити…
Просили? Ось вам!
Що, не просили? Ой не чує баба...
▫️ Створюємо змінну для збереження результату, задавши
▫️ Ітеруємось по усіх елементах, і додаємо кожен до результату
▫️ Повертаємо результат
Коротше, як бачите, реалізація проста як світ)
Тому досліджуйте ідосліджуваними будете буде вам щастя 😊
Спробувати самостійно | Підписатись
Що, не просили? Ой не чує баба...
start як початкове значенняКоротше, як бачите, реалізація проста як світ)
Тому досліджуйте і
Спробувати самостійно | Підписатись
Please open Telegram to view this post
VIEW IN TELEGRAM
Ви можете передавати генератор як аргумент
І навіть без додаткових дужок
Тааак, виглядає трохи дивно, але це працює 🤯
Точніше, працює лише доти, доки це єдиний аргумент😅
Спробувати самостійно | Підписатись
І навіть без додаткових дужок
Тааак, виглядає трохи дивно, але це працює 🤯
Точніше, працює лише доти, доки це єдиний аргумент
Спробувати самостійно | Підписатись
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1 1 1