🐍 Укус питона 🐍
2.47K subscribers
1.06K photos
24 videos
285 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Зачем используется метод querySelectorAll() в JavaScript и когда его применять?

Метод querySelectorAll() возвращает список всех элементов, соответствующих указанному CSS-селектору. Это удобно, когда нужно сразу получить несколько элементов для обработки или изменений.

Пример:

<ul>
<li class="item">Apple</li>
<li class="item">Banana</li>
<li class="item">Orange</li>
</ul>

<script>
const items = document.querySelectorAll(".item");
items.forEach(el => el.style.color = "blue");
</script>


📌В этом примере querySelectorAll() выбирает все элементы с классом item и меняет их цвет

querySelectorAll() удобно использовать при работе со списками, карточками, формами и динамическими интерфейсами. Он поддерживает любые CSS-селекторы и позволяет легко применять массовые изменения к группе элементов
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код?
Ответ:
Anonymous Quiz
38%
2 1
38%
3 1
15%
3 2
8%
4 2
👩‍💻 Как Python хранит функции: всё — объекты

В Python функции — это не особый синтаксис, а объекты первого класса.

Их можно присваивать переменным, передавать в другие функции и возвращать как значения


➡️ Пример:

def greet(name):
return f"Привет, {name}!"

say_hello = greet # присвоили функцию переменной
print(say_hello("Анна")) # Привет, Анна!

def run(func, arg):
print(func(arg))

run(greet, "Борис") # можно передавать функцию как аргумент


📌 Понимание, что функции — такие же объекты, как строки или списки,
открывает путь к лямбдам, декораторам и функциональному стилю в Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Передача изменяемых объектов в функции

В Python аргументы передаются по ссылке на объект, а не по значению.

Если функция изменяет мутабельный объект (список, словарь), изменения сохраняются снаружи


➡️ Пример:

def add_item(items):
items.append("новый элемент")

data = ["a", "b"]
add_item(data)

print(data) # ['a', 'b', 'новый элемент']


📌 Функция не вернула новый список — она изменила существующий. Чтобы избежать этого, передавай копию (items[:] или items.copy()).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🍾2😁1
Что выведет код?
👩‍💻 Замыкания в Python — функция внутри функции

Замыкание (closure) — это функция, которая "запоминает" значения из внешней области видимости, даже если эта область уже недоступна.

Это один из способов создавать функции с состоянием, не используя классы


➡️ Пример:

def counter():
count = 0
def inner():
nonlocal count
count += 1
return count
return inner

c = counter()
print(c()) # 1
print(c()) # 2
print(c()) # 3


📌 inner() помнит переменную count между вызовами, потому что она «замкнута» из внешней функции
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Декораторы с аргументами — динамическое управление поведением функции

Декораторы в Python могут принимать параметры, что делает их особенно мощными.

Это позволяет менять поведение функций в зависимости от внешних условий, не переписывая код


➡️ Пример:

def repeat(times):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(times):
func(*args, **kwargs)
return wrapper
return decorator

@repeat(3)
def greet():
print("Привет!")

greet()
# Привет!
# Привет!
# Привет!


📌 Здесь repeat(3) создаёт декоратор, который повторяет выполнение функции 3 раза
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код?
👩‍💻 Замыкания в Python — функции с памятью

Замыкание (closure) — это функция, которая «запоминает» значения переменных из области видимости, где она была создана, даже если эта область уже недоступна.

Это мощный инструмент для инкапсуляции состояния без классов


➡️ Пример:

def counter(start=0):
count = start
def increment():
nonlocal count
count += 1
return count
return increment

click = counter(10)
print(click()) # 11
print(click()) # 12


📌 Функция increment хранит доступ к переменной count, даже после выхода из counter
Please open Telegram to view this post
VIEW IN TELEGRAM
Зачем используется метод remove() в Python и когда его применять?

Метод remove() удаляет первое вхождение указанного элемента из списка. Это удобно, когда нужно убрать конкретное значение, а не по индексу.

Пример:

fruits = ["apple", "banana", "orange", "banana"]

fruits.remove("banana")
print(fruits)
# ➜ ['apple', 'orange', 'banana']


📌В этом примере remove() удаляет только первое появление "banana", оставляя второе

remove() удобно использовать при очистке данных, фильтрации списков или удалении обработанных элементов. Если элемента нет, Python вызывает ValueError, поэтому перед удалением лучше проверять наличие через in
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код?
👩‍💻 Что такое свойство line-height в CSS и зачем оно нужно?

Свойство line-height управляет расстоянием между строками текста.

Это влияет не только на читаемость, но и на вертикальный ритм всего интерфейса


➡️ Пример:

<p class="text">
Это пример текста с увеличенным межстрочным интервалом.
</p>

<style>
.text {
font-size: 16px;
line-height: 1.8;
}
</style>


📌 В этом примере строки располагаются свободнее, благодаря line-height: 1.8
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Замороженные датаклассы — безопасные объекты без мутаций

В Python dataclasses можно сделать неизменяемыми с помощью параметра frozen=True.

Это превращает экземпляры в безопасные структуры данных, похожие на namedtuple, но с гибкостью классов.


➡️ Пример:

from dataclasses import dataclass

@dataclass(frozen=True)
class Point:
x: int
y: int

p = Point(3, 5)
# p.x = 10 # Ошибка: объект заморожен
print(p) # Point(x=3, y=5)


📌 Используй frozen dataclass, если данные должны быть константными и безопасными по дизайну
Please open Telegram to view this post
VIEW IN TELEGRAM