Jump to content

Дзен Питона

Вывод Zen of Python в терминале

Дзен Python — это сборник из 19 «руководящих принципов» написания компьютерных программ , влияющих на дизайн Python языка программирования . [1] Код Python, соответствующий этим принципам, часто называют «Pythonic». [2]

Инженер-программист Тим ​​Питерс написал этот набор принципов и разместил его в списке рассылки Python в 1999 году. [3] Список Петерса оставил открытым 20-й принцип «для заполнения Гвидо», имея в виду Гвидо ван Россума , первоначального автора языка Python. Вакансия 20-го принципала не заполнена.

Книга Питерса «Дзен Python» была включена под номером 20 в официальные предложения по усовершенствованию языка Python и стала общедоступной . [4] Он также включен как пасхалка Python в интерпретатор , где его можно отобразить, введя import this. [1] [4] [а]

В мае 2020 года Барри Варшава (разработчик GNU Mailman ) написал тексты к музыке. [5] [6]

Принципы

[ редактировать ]
Дзен Python в иллюстрациях

Принципы перечислены следующим образом: [б]

  • Красивое лучше уродливого.
  • Явное лучше неявного.
  • Простое лучше сложного.
  • Комплекс лучше сложного.
  • Плоский лучше, чем вложенный .
  • Разреженный лучше, чем густой.
  • Читабельность имеет значение.
  • Особые случаи не настолько особенные, чтобы нарушать правила.
  • Хотя практичность превосходит чистоту.
  • Ошибки никогда не должны проходить молча.
  • Если только явно не замолчать.
  • Перед лицом двусмысленности откажитесь от искушения угадать.
  • Должен быть один (и желательно только один) очевидный способ сделать это. [с]
  • Хотя поначалу этот путь может быть неочевидным, если вы не голландец.
  • Сейчас лучше, чем никогда.
  • Хотя никогда зачастую лучше, чем прямо сейчас. [д]
  • Если реализацию сложно объяснить , это плохая идея.
  • Если реализацию легко объяснить, это может быть хорошей идеей.
  • Пространства имен — это замечательная идея, давайте делать их больше!

Быть питоническим

[ редактировать ]

Один из принципов: «Должен быть один — и желательно только один — очевидный способ сделать это» можно назвать «питоническим» способом. [8] Официальное определение «Pythonic»: [2]

Идея или фрагмент кода, который точно соответствует наиболее распространенным идиомам языка Python, а не реализует код с использованием концепций, общих для других языков. Например, распространенной идиомой в Python является цикл по всем элементам итерируемого объекта с использованием for заявление. Во многих других языках нет конструкции такого типа, поэтому люди, незнакомые с Python, иногда вместо этого используют числовой счетчик:

for i in range(len(food)):
    print(food[i])

В отличие от более чистого метода Pythonic:

for piece in food:
    print(piece)

Код, который сложно понять или который читается как грубая транскрипция с другого языка программирования, называется непитоническим . [9]

На практике

[ редактировать ]

С момента выпуска «Дзена Python» были проведены исследования его эффективности и фактического использования среди разработчиков. Несмотря на разницу в интерпретации между начинающими и опытными программистами Python, интервью среди 13 программистов Python с разной квалификацией показывают, что дзен Python «положительно влияет на то, как разработчики пишут код и говорят о нем». [8] Исследователи расширили этот практический пример, чтобы изучить использование идиом Python в репозиториях GitHub , и обнаружили, что использование «идиом Python» [и] увеличивалось с течением времени. [10] Написание кода Python, соответствующего принципам дзен Python, может сэкономить память и время выполнения программ Python. [11] Желание писать код на Python привело к появлению инструментов рефакторинга, помогающих программистам достичь этой цели. [12] [13]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Исходный код Zen of Python можно найти на Github .
  2. ^ Ссылки на Википедию ниже добавлены для дальнейшего использования и понимания и не были явно связаны в Zen of Python.
  3. ^ Форматирование тире в этой строке и в конце намеренно непоследовательно из-за различных соглашений о форматировании. [7]
  4. ^ В пасхальном яйце переводчика это написано как «Хотя никогда не бывает лучше, чем *прямо* сейчас». Это соответствует давнему соглашению об общении открытым текстом (при котором общие функции форматирования часто невозможны) и где акцент обозначается звездочками.
  5. ^ Список их Pythonic идиом можно найти здесь https://slimshadyiam.github.io/ZenYourPython/
  1. ^ Jump up to: а б Рейтц, Кеннет (2011–2019). «Стиль кода» . Путеводитель по Python для путешествующих автостопом . § Дзен Python . Проверено 26 марта 2019 г.
  2. ^ Jump up to: а б «Глоссарий» . Документация Python . Проверено 7 февраля 2024 г.
  3. ^ Питерс, Тим (4 июня 1999 г.). «Путь Питона» . Фонд программного обеспечения Python . Проверено 26 марта 2019 г.
  4. ^ Jump up to: а б Питерс, Тим (19 августа 2004 г.). «PEP 20 — Дзен Python» . Фонд программного обеспечения Python . Проверено 26 марта 2019 г.
  5. ^ Варшава, Барри (10 мая 2020 г.). «Дзен Питона» . Мы боимся перемен . Архивировано из оригинала 3 июня 2020 г.
  6. ^ Варшава, Барри (23 мая 2020 г.). Дзен Python . Ютуб . Збведикон. Архивировано из оригинала 11 декабря 2021 г. Архивировано 3 июня 2020 г. в Wayback Machine.
  7. ^ «Проблема 3364: орфографическая опечатка в тексте Zen of Python — трекер Python» . Проверено 10 февраля 2021 г.
  8. ^ Jump up to: а б Александру, Кэрол В.; Мерчанте, Хосе Дж.; Паничелла, Себастьяно; Прокш, Себастьян; Галл, Харальд К.; Роблес, Грегорио (24 октября 2018 г.). «Об употреблении питонических идиом» . Материалы Международного симпозиума ACM SIGPLAN 2018 года по новым идеям, новым парадигмам и размышлениям о программировании и программном обеспечении (PDF) . Вперед! 2018. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 1–11. дои : 10.1145/3276954.3276960 . ISBN  978-1-4503-6031-9 . OCLC   1362712424 . S2CID   53057358 . Архивировано из оригинала 3 октября 2018 г.
  9. ^ «Стиль кода — Путеводитель по Python для путешествующих автостопом» . docs.python-guide.org . Архивировано из оригинала 27 января 2021 года . Проверено 20 января 2021 г.
  10. ^ Фарук, Аамир; Зайцев, Вадим (22 ноября 2021 г.). «Есть несколько способов усовершенствовать ваш Python» . Материалы 14-й Международной конференции ACM SIGPLAN по языковой инженерии программного обеспечения . SLE 2021. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 68–82. дои : 10.1145/3486608.3486909 . ISBN  978-1-4503-9111-5 .
  11. ^ Лилапрут, Паттара; Чинтанет, Бодин; Ваттанакриенгкрай, Супатсара; Кула, Раула Гайковина; Джайсри, Понгчай; Исио, Такаши (20 октября 2022 г.). «Делает ли программирование на Pythonic zen максимальную производительность?: Предварительные эксперименты с девятью Pythonic-идиомами в масштабе» . Материалы 30-й Международной конференции IEEE/ACM по пониманию программ . МКПК '22. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 575–579. дои : 10.1145/3524610.3527879 . ISBN  978-1-4503-9298-3 .
  12. ^ Син, Чжан , ; Цзэцзюнь ; Чжэнчан
  13. ^ Фанудом, Пурит; Ваттанакул, Наруедон; Сакулниват, Таттия; Рагхитветсагул, Чайёнг; Сунетнанта, Танвади; Чёткиертикул, Моракот; Кула, Раула Гайковина (05 сентября 2020 г.), Тедди: Автоматические рекомендации по использованию Pythonic идиом для проектов программного обеспечения на основе извлечения , arXiv : 2009.03302
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 75b0ab9406abdbd4c42ffc8fde69a54a__1718064060
URL1:https://arc.ask3.ru/arc/aa/75/4a/75b0ab9406abdbd4c42ffc8fde69a54a.html
Заголовок, (Title) документа по адресу, URL1:
Zen of Python - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)