Что значит питон?
На многих веб-сайтах я часто вижу комментарии о том, что код не является pythonic, или что есть более pythonic способ достичь той же цели.
Что значит "питон" в этом контексте? Например, почему
while i < someValue:
do_something(list[i])
i += 1
не питонное время
for x in list:
doSomething(x)
это питон?
1 ответ
Использование возможностей языка Python для создания понятного, лаконичного и понятного кода.
Pythonic означает код, который не только правильно понимает синтаксис, но и следует соглашениям сообщества Python и использует язык так, как он предназначен для использования.
Это, пожалуй, проще всего объяснить на отрицательном примере, как в связанной статье из других ответов. Примеры непифонического кода часто приходят от пользователей других языков, которые вместо изучения шаблонов программирования на Python, таких как списочные выражения или выражения генератора, пытаются ломаться в шаблонах, более часто используемых в C или Java. Петли являются особенно распространенными примерами этого.
Например, в Java я мог бы использовать
for i in (i; i < items.length ; i++)
{
n = items[i];
... now do something
}
В Python мы можем попытаться повторить это, используя циклы while, но было бы чище использовать
for i in items:
i.perform_action()
Или даже выражение генератора
(i.some_attribute for i in items)
По сути, когда кто-то говорит, что что-то не пифонично, они говорят, что код можно переписать так, чтобы он лучше подходил для стиля кодирования питонов.
Typing import this
в командной строке дает краткое изложение принципов Python. Менее известно, что исходный код import this
это решительно, и по замыслу, не пифоничный! Взгляните на это для примера того, чего не следует делать.