Что выведет этот код?
  Anonymous Quiz
    14%
    True
      
    8%
    False
      
    26%
    [1, 2, 3]
      
    17%
    [2, 3]
      
    22%
    Ошибку
      
    13%
    Узнать ответ
      
    👍5
  ⚡️ Только ключевые и только позиционные аргументы
Позиционные аргументы — параметры, которые передаются в определённом порядке. Ключевые аргументы — те, что получают значения через ключ, то есть
Все аргументы, которые будут до косой линии (/) будут считаться только позиционными. То есть в них нельзя будет передать значение по ключу.
Все аргументы, которые будут после звёздочки (*) будут считаться только ключевыми. Вы можете задать им значение только с помощью
Больше информации и примеров в документации.
#теория
Позиционные аргументы — параметры, которые передаются в определённом порядке. Ключевые аргументы — те, что получают значения через ключ, то есть
key=value.Все аргументы, которые будут до косой линии (/) будут считаться только позиционными. То есть в них нельзя будет передать значение по ключу.
Все аргументы, которые будут после звёздочки (*) будут считаться только ключевыми. Вы можете задать им значение только с помощью
key=value.Больше информации и примеров в документации.
#теория
👍2
  ⚡️ Геттеры и сеттеры 
В ООП языка (C#, Java) распространены свойства, которые вызываются функцию для получения значения какой-либо переменной.
При получении значения вызывается функция с
Также очень важно, чтобы методы и свойства имели одно и то же имя. Подробнее в документации.
#теория
В ООП языка (C#, Java) распространены свойства, которые вызываются функцию для получения значения какой-либо переменной.
При получении значения вызывается функция с
@property. А для установки значения используется функция с @имя_свойства.setter.Также очень важно, чтобы методы и свойства имели одно и то же имя. Подробнее в документации.
#теория
👍2
  ⚡️ Немного про словари
Это коллекция, которая хранит данные в формате ключ-значение. У неё есть несколько интересных фишек:
#теория
Это коллекция, которая хранит данные в формате ключ-значение. У неё есть несколько интересных фишек:
d | other — Объединяет два словаря в один новый. Добавили с версии Python 3.9.setdefault(key, default=None) — Возвращает значение, если ключ есть в словаре. Иначе вставляет default на место ключа и возвращает его.dict.fromkeys(iterable, value=None) — создаёт словарь с ключами из iterable и заполняет их значениями value.#теория
👍2
  Что выведет код выше?
  Anonymous Quiz
    54%
    score: 5 points
      
    9%
    score: a points
      
    36%
    Ошибку
      
    2%
    Узнать ответ
      
    🔥3🤔2
  ⚡️ Что такое 
Теперь поговорим про
#теория
__name__
Эта переменная хранит название модуля, который импортируется. А если это прямой запуск (python3 foo.py), то его значение будет __main__. Теперь поговорим про
__name__ == "__main__". При импорте модуля весь код выполняется. Чтобы избежать странного поведения (см. пример), стоит делать проверку.#теория
👍3
  🤔5
  ⚡️ Книги по Python
Часто задают вопрос новички: «Что почитать про Python». Это список лучших книг для начинающих разработчиков и не только.
Марк Лутц «Изучаем Python» — Библия разработчика на Python. Автор подробно рассказывает все возможности языка.
Эрик Мэтиз «Изучаем Python» — Отличная книга, для тех, кто только начинает свое знакомство с Python.
A Byte of Python — Книга, которую тоже часто рекомендуют новичкам. Единственный минус — она на английском.
#книги
Часто задают вопрос новички: «Что почитать про Python». Это список лучших книг для начинающих разработчиков и не только.
Марк Лутц «Изучаем Python» — Библия разработчика на Python. Автор подробно рассказывает все возможности языка.
Эрик Мэтиз «Изучаем Python» — Отличная книга, для тех, кто только начинает свое знакомство с Python.
A Byte of Python — Книга, которую тоже часто рекомендуют новичкам. Единственный минус — она на английском.
#книги
👍7🔥1
  ⚡️ is vs ==
Оператор сравнения (==) вызывает метод
Оператор is сравнивает, является ли этот объект одним и тем же. То есть сравнивает ссылки объектов:
Кстати, поскольку создатели некоторых классов могут неправильно реализовать
#теория
Оператор сравнения (==) вызывает метод
__eq__ у объекта, который сравнивает себя с другим и возвращает True или False.Оператор is сравнивает, является ли этот объект одним и тем же. То есть сравнивает ссылки объектов:
id(a) == id(b).Кстати, поскольку создатели некоторых классов могут неправильно реализовать
__eq__, при сравнении с None рекомендуют использовать is.#теория
🔥11👍4
  👍8🤔4
  ⚡️ Про область видимости
Вы можете просмотреть все переменные, которые хранятся в определённой области видимости (модуль, класс, функция) с помощью функций
#теория
Вы можете просмотреть все переменные, которые хранятся в определённой области видимости (модуль, класс, функция) с помощью функций
locals() и dir().dir(object) — возвращает список со всеми доступными именами у object. Если ничего не передано, возвращает имена в конкретной области видимости.locals() — возвращает словарь со всеми доступными переменными и их значениями в конкретной области видимости. #теория
👍6
  ⚡️ Наследование
Это один из принципов ООП, который позволяет дочернему классу перенять все возможности родителя. Или, проще говоря, мы переиспользуем код другого класса.
Получить доступ к родителю можно с помощью вызова super(). Оттуда уже можно брать реализации функций, которые мы переопределяем, из родительского класса.
Кстати, по умолчанию все классы наследуются от object, даже если мы этого не указываем. Поэтому у класса будет всё, что есть у object.
#теория
Это один из принципов ООП, который позволяет дочернему классу перенять все возможности родителя. Или, проще говоря, мы переиспользуем код другого класса.
Получить доступ к родителю можно с помощью вызова super(). Оттуда уже можно брать реализации функций, которые мы переопределяем, из родительского класса.
Кстати, по умолчанию все классы наследуются от object, даже если мы этого не указываем. Поэтому у класса будет всё, что есть у object.
#теория
👍12