Репозитори на почитать для расширения кругозора.
▫️ Большой ликбез по экосистеме Python
https://github.com/brunocampos01/understanding-the-python-ecosystem
▫️Подборка самых популярных полезностей для веб разработчиков
https://github.com/ml-tooling/best-of-web-python
▫️Подборка библиотек для тех кто уважает типизацию в Python
https://github.com/typeddjango/awesome-python-typing
#basic #libs
▫️ Большой ликбез по экосистеме Python
https://github.com/brunocampos01/understanding-the-python-ecosystem
▫️Подборка самых популярных полезностей для веб разработчиков
https://github.com/ml-tooling/best-of-web-python
▫️Подборка библиотек для тех кто уважает типизацию в Python
https://github.com/typeddjango/awesome-python-typing
#basic #libs
👍9❤6
Функция
Ранее я писал про функцию
Скорее всего вы уже знаете как использовать функцию
dir() - удобна для получения списка атрибутов у любого объекта.Ранее я писал про функцию
__dir__() в модуле (не путайте её с переменной __all__(), которая указывает список объектов для импорта если встречается конструкция from module import *). Скорее всего вы уже знаете как использовать функцию
dir(). Любой объект может реализовать метод __dir__() чтобы указать список имеющийхся и динамических атрибутов. И функция dir() поможет получить список этих атрибутов.>>> dir(str)У этой функции есть еще один способ применения. Её можно вызвать без аргумента, и в таком случае она вернёт список имён в текущем неймспейсе.
['__add__', '__class__', '__contains__', ...]
>>> dir()#basic #tricks
['__builtins__', '__doc__', '__file__', ...]
>>> def test():
>>> x = 1
>>> print(dir())
>>> test()
['x']
Telegram
Python Заметки
Знаете ли вы про "магические" методы классов ˍˍgetattributeˍˍ() и ˍˍgetattrˍˍ()?
ˍˍgetattributeˍˍ вызывается всякий раз когда идёт обращение к атрибуту объекта. Например метод или какая-то переменная.
ˍˍgetattrˍˍ вызывается когда атрибут не найден.
И…
ˍˍgetattributeˍˍ вызывается всякий раз когда идёт обращение к атрибуту объекта. Например метод или какая-то переменная.
ˍˍgetattrˍˍ вызывается когда атрибут не найден.
И…
👍7
Оператор pipe позволяет писать более компактный код, реализуя логику объединения данных (Union).
Важно помнить, что его поведение зависит от контекста.
Побитовые операции (логическое OR)
Самое главное - не путать с оператором or, это другое!
Объединение множеств
Слияние словарей
Аннотации типов, заменяет Union
Допустимо использовать в isinstance или issubclass
Паттерн-матчинг
Так же нашел библиотеку pipe которая добавляет еще много возможностей. Рекомендую ознакомиться ;)
#basic
Важно помнить, что его поведение зависит от контекста.
Побитовые операции (логическое OR)
result = 5 | 3
# 5 (0101) | 3 (0011) = 7 (0111)
Самое главное - не путать с оператором or, это другое!
Объединение множеств
set_a = {1, 2, 3}
set_b = {3, 4, 5}
set_c = set_a | set_b
# {1, 2, 3, 4, 5}
set_c |= {5, 6}
# {1, 2, 3, 4, 5, 6}Слияние словарей
dict_1 = {"a": 1, "b": 2}
dict_2 = {"b": 3, "c": 4}
merged = dict_1 | dict_2
# {'a': 1, 'b': 3, 'c': 4}
merged |= {"d": 5}
# {'a': 1, 'b': 3, 'c': 4, 'd': 5}Аннотации типов, заменяет Union
def process_data(value: int | str) -> None:
print(value)
Допустимо использовать в isinstance или issubclass
isinstance(3, int | float)
# True
Паттерн-матчинг
status_code = 404
match status_code:
case 200 | 201 | 204:
print("OK")
case 400 | 404 | 500:
print("ERROR")
Для использования в своих классах требуется переопределить метод __or__
Так же нашел библиотеку pipe которая добавляет еще много возможностей. Рекомендую ознакомиться ;)
#basic
GitHub
GitHub - JulienPalard/Pipe: A Python library to use infix notation in Python
A Python library to use infix notation in Python. Contribute to JulienPalard/Pipe development by creating an account on GitHub.
❤4