Python Community
12.9K subscribers
1.25K photos
33 videos
15 files
730 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Тесты в документации

Такой подход интересен тем, что позволяет другому программисту понять как работает функция в определённых ситуациях, а вам — протестировать её работу.

Реализуется подобная фича с помощью встроенного модуля doctest. Он ищет текста, которые выглядят как интерактивные сеансы Python (>>>, ... и подобные символы).

Вы можете запускать тесты так же, как в примере, а можно с помощью терминала: python -m doctest -v example.py.

#миниурок #doctest
🔥7👍3
👍5
⚡️ Только ключевые и только позиционные аргументы

Позиционные аргументы
— параметры, которые передаются в определённом порядке. Ключевые аргументы — те, что получают значения через ключ, то есть key=value.

Все аргументы, которые будут до косой линии (/) будут считаться только позиционными. То есть в них нельзя будет передать значение по ключу.

Все аргументы, которые будут после звёздочки (*) будут считаться только ключевыми. Вы можете задать им значение только с помощью key=value.

Больше информации и примеров в документации.

#теория
👍2
⚡️ Геттеры и сеттеры

В ООП языка (C#, Java) распространены свойства, которые вызываются функцию для получения значения какой-либо переменной.

При получении значения вызывается функция с @property. А для установки значения используется функция с @имя_свойства.setter.

Также очень важно, чтобы методы и свойства имели одно и то же имя. Подробнее в документации.

#теория
👍2
Что выведет код выше?
Anonymous Quiz
39%
True
48%
False
10%
Ошибку
4%
Узнать ответ
⚡️ Немного про словари

Это коллекция, которая хранит данные в формате ключ-значение. У неё есть несколько интересных фишек:

d | other — Объединяет два словаря в один новый. Добавили с версии Python 3.9.

setdefault(key, default=None) — Возвращает значение, если ключ есть в словаре. Иначе вставляет default на место ключа и возвращает его.

dict.fromkeys(iterable, value=None) — создаёт словарь с ключами из iterable и заполняет их значениями value.

#теория
👍2
🔥3🤔2
⚡️ Что такое __name__

Эта переменная хранит название модуля, который импортируется. А если это прямой запуск (python3 foo.py), то его значение будет __main__.

Теперь поговорим про __name__ == "__main__". При импорте модуля весь код выполняется. Чтобы избежать странного поведения (см. пример), стоит делать проверку.

#теория
👍3
Что выведет этот код?
Anonymous Quiz
19%
True
51%
False
26%
Ошибку
5%
Узнать ответ
👎7👍1
Что выведет этот код?
Anonymous Quiz
25%
100
18%
0
44%
Ошибку
13%
Узнать ответ
🤔5
⚡️ Книги по Python

Часто задают вопрос новички: «Что почитать про Python». Это список лучших книг для начинающих разработчиков и не только.

Марк Лутц «Изучаем Python» — Библия разработчика на Python. Автор подробно рассказывает все возможности языка.

Эрик Мэтиз «Изучаем Python» — Отличная книга, для тех, кто только начинает свое знакомство с Python.

A Byte of Python — Книга, которую тоже часто рекомендуют новичкам. Единственный минус — она на английском.

#книги
👍7🔥1
⚡️ is vs ==

Оператор сравнения (==) вызывает метод __eq__ у объекта, который сравнивает себя с другим и возвращает True или False.

Оператор is сравнивает, является ли этот объект одним и тем же. То есть сравнивает ссылки объектов: id(a) == id(b).

Кстати, поскольку создатели некоторых классов могут неправильно реализовать __eq__, при сравнении с None рекомендуют использовать is.

#теория
🔥11👍4
Что выведет этот код?
Anonymous Quiz
46%
True
50%
False
4%
Узнать ответ
👍8🤔4
⚡️ Про область видимости

Вы можете просмотреть все переменные, которые хранятся в определённой области видимости (модуль, класс, функция) с помощью функций locals() и dir().

dir(object) — возвращает список со всеми доступными именами у object. Если ничего не передано, возвращает имена в конкретной области видимости.

locals() — возвращает словарь со всеми доступными переменными и их значениями в конкретной области видимости.

#теория
👍6