image Всем привет! Это уже десятый выпуск дайджеста на Хабрахабр о новостях из мира Python.

В сегодняшнем выпуске вы найдёте интересные материалы, касающиеся Python 3 и его внутреннего устройства, Django, производительности и многого другого. Присылайте свои актуальные материалы, а также любые замечания и предложения, которые будут добавлены в ближайший дайджест.

А теперь к делу!


Статьи


Да, Python медленный, но меня это не волнует
О том, что действительно важнее — продуктивность или производительность?

Python 3 Patterns, Recipes and Idioms
Очень крутая подборка паттернов и рецептов для Python 3

The Meaning of Underscores in Python
О назначении символа нижнего подчёркивания в Python

Exposing Python 3.6's Private Dict Version
Немного о внутреннем устройстве словарей в Python 3.6

Python Functions Aren't What You Think
Небольшая заметка о том, что, на самом деле, представляют из себя функции в Python

Python: the thing good Objects come in
Заметка о внутреннем устройстве объектов в Python

Debugging an inactive python process
Отличная статья о том, как можно осуществлять отладку неактивного процесса в Python

Modern Django?—?Part 0: Introduction and Initial Setup
Modern Django?—?Part 1: Project Refactor and Meeting the Django Settings API
Modern Django?—?Part 2: REST APIs, Apps, and Django REST Framework
Серия статей, рассказывающих о том, как начать работать с Django

Интересные проекты


Chaos Bot
Интересный эксперимент, в котором всю разработку отдали в open-source сообщество.

Gitsuggest
Инструмент, который подсказывает github-репозитории на основе тех, которые вам понравились.

News Audit
Инструмент для определения «фейковых» новостей

Предыдущий выпуск дайджеста ищете здесь:

Pygest #9. Релизы, статьи, интересные проекты из мира Python [8 мая 2017 — 22 мая 2017]

Спасибо за внимание! Присылайте Ваши предложения для публикации в дайджесте!
Поделиться с друзьями
-->

Комментарии (8)


  1. fireSparrow
    05.06.2017 10:20
    +1

    Спасибо за подборку.

    Кто-нибудь может объяснить мне пятую статью («Python Functions Aren't What You Think»)? Почему её автор преподносит то, что он пишет, как какое-то открытие, как сакральное знание о некой скрытой механике? На мой взгляд, всё, что там написано, очевидно следует из того факта, что в питоне функции являются объектами первого класса.


    1. andrewnester
      05.06.2017 10:59

      вам спасибо!

      на самом деле этот вопрос очень актуален для людей с опытом в других языках, начавших писать на Python.
      часто такие вопросы встречал у людей с предыдущим опытом в PHP.

      но причину, почему это так вы указали верно, да


    1. werevolff
      05.06.2017 17:33

      Интересно уточнение: ф-ии в python всегда создаются анонимными, а потом создаётся переменная с именем ф-ии и ей присваивается значение в виде этой ф-ии. Вообще, вопрос этот спорный. Не факт, что под капотом всё так и будет, однако, если всё так, мы имеем несколько интересных последствий. Например, мы находим объяснение тому, что функция может переопределить переменную, объявленную выше. И, на сей раз, объяснение не ограничивается формулой «просто потому, что пространство имён». Ещё, мы предполагаем, что объект функции создаётся раньше, чем присваивается имя (по крайней мере, автор пишет именно так). Я не знаю где бы это могло использоваться, но, уверен, позже мы придумаем что-нибудь.

      Да, если всё так и есть, в теории, мы можем сделать так:

      some_var = 30
      
      def some_var(my_val=some_var):
          print(my_val)
      some_var()
      



      1. John_Minority
        06.06.2017 06:46

        > Например, мы находим объяснение тому, что функция может переопределить переменную, объявленную выше.
        > И, на сей раз, объяснение не ограничивается формулой «просто потому, что пространство имён».

        «Функция, как и все остальное в языке Python, является объектом.» Этого не достаточно для объяснения?

        У нас же есть магический метод __call__ для создания функции через экземпляр класса


        1. werevolff
          06.06.2017 07:39

          Иногда полезно читать несколько статей в дайджесте прежде, чем начинать спорить из-за одной:

          These dunder methods are often referred to as magic methods—but many people in the Python community, including myself, don’t like that.
          It’s best to stay away from using names that start and end with double underscores (“dunders”) in your own programs to avoid collisions with future changes to the Python language.


          З.Ы. Довольно интересно: это реально моветон, или автор слишком осторожен?


          1. John_Minority
            07.06.2017 04:07

            Ну, поведение существующих магических методов никто менять не будет, а вот придумывать свои — это моветон.


  1. chemtech
    05.06.2017 13:33

    Я правильно понимаю что в Gitsuggest (Инструменте, который подсказывает github-репозитории на основе тех, которые вам понравились) нужно вводить логин, пароль от GitHub?


    1. andrewnester
      05.06.2017 14:12

      необязательно

      # Password can be skipped which means you chose to go the unauthenticated
      # way which may raise RateLimitExceeded exception.