Чи вважається використання "{}" у рядках формату Pythonic?


9

Я щойно навчився писати

'{}{}'.format(string_a, string_b)

замість

'{0}{1}'.format(string_a, string_b)

в Python, тобто ви можете опустити цифри для параметрів формату рядків, коли потрібно, щоб речі складалися один за одним в порядку.

Це вважається пітонічним?

ПРИМІТКА: "Pythonic" - поширений термін серед програмістів Python, щоб означати ідіоматичний код Python. У культурі Python, як правило, існує чіткий консенсус щодо стильових питань, особливо для таких специфічних, як ця, з огляду на чітку філософію дизайну мови "Повинно бути один - і бажано лише один - очевидний спосіб зробити це". Це цитується з "Дзен Пітона", набору афоризмів, який проходить довгий шлях до визначення того, що є "пітонічним", і який включений до кожного розповсюдження Python (у будь-якому командному рядку інтерпретатора Python, введіть, import thisщоб побачити його).


4
@GregHewgill: "Pythonic" - досить поширений термін, який в основному означає "ідіоматичний Python"; різновид коду Python, який прихильників якості Python-коду буде стилістично приємним.
Carson63000

1
Ця дуже специфічна особливість чітко включена в Python (це насправді не питання стилю), так чому б його не вважати "пітонічним" за будь-яким розумним визначенням? Наскільки мені відомо, немає жодних особливостей мови, які вважаються «нефітонічними».
Грег Х'югілл

4
Для довідки, ця {}функція була введена в Python 3.1 . Удосконалення, що спонукало це доповнення, було випуском 5237 . Гвідо має кілька коментарів до цього питання, серед яких "Будь ласка, продовжуйте і закінчуйте це. Я радий, що це продовжується!" Якщо це не вважається "пітонічним", я не знаю, що таке.
Грег Х'югілл

4
Для людей, які голосують за закриття цього питання, можу лише зазначити, що те, що є чи ні не є Pythonic, є важливою частиною культури кодування Python, і я можу стверджувати, що культура кодування є важливим елементом інженерії програмного забезпечення, прийнятим предметом цей сайт
Ghopper21

2
@Andrea - саме це було моєю першою думкою, але важко стверджувати, що BDFL думає, що це не піфонічно. Побачивши цитату з цього приводу, я знову переглянув дзен Python і подумав, може, це випадок "практичність б'є чистоту"? Обґрунтування дискусії (пов'язане з відповіддю Грега) є зручністю для письменника коду. І в будь-якому випадку, дійсно найбільш явним способом використання форматування рядків є, "{a}{b}".format(a=string_a, b=string_b)а не нумерація. Так чи інакше, це лише мої міркування та читання між рядками про мислення ...
Ghopper21,

Відповіді:


12

Ця {}функція була введена в Python 3.1 (а також підтримується на Python 2.7). Удосконалення, що спонукало це доповнення, було випуском 5237 . Гідо має кілька коментарів до цього питання, серед яких:

Будь ласка, продовжуйте і закінчуйте це. Я радий, що це відбувається!

Особливість із подібним схваленням від BDFL , безумовно, вважатиметься "пітонічною" будь-якою мірою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.