2015-05-08 4 views
-2

Под python 3, что будет считаться наиболее правильным?Какая печать более «правильная»?

Пример 1:

a='bacon' 
b='salad' 
print("I love {type_a} more than {type_b}".format(type_a=a, type_b=b)) 

или

Пример 2:

a='bacon' 
b='salad' 
print("I love {} more than {}".format(a, b)) 

Это произошло, потому что иногда я вижу себя кодирование с обоих приведенных примеров, но я» m не совсем уверен, что будет самым правильным способом его использования, и когда это будет более приемлемым ели использовать .format(type_a=a) вместо .format(a)

+0

Более важно придерживаться одиночных или двойных кавычек по всему вашему коду. И используйте все, что делает ваш код легче читать и понимать, а не то, что кто-то считает «более правильным», и это указывает на первое, а не последнее. –

+1

Первой формой может быть предпочтительнее, если вам нужно удалить строку из контекста (например, если вам нужно передать строку переводчику). –

+2

Второй предпочтительный, первый, когда второй неясен или не может быть выражен во второй форме. – simonzack

ответ

4

Первая форма более подходит, если вы предполагаете использовать разные языки, поскольку порядок слов в предложении может быть другим. Или, если ваши замены исходят из словаря.

Вторая форма короче и более прямая. Это то, что я предпочел бы, если бы у меня не было причин выбирать иначе.

+0

Я нахожусь на треке тогда, спасибо всем за ответ –

+0

@Thales Они идентичны на выходе, но один заменяет собой использование ключевых слов, а другой заменяет в порядке аргументов. –

3

Они оба почти идентичны, за исключением первой вы можете изменить порядок переменных, переданных в, а второй один принимает переменные в том порядке, они передаются в.

+0

Правда, но иногда пример два разрушает мое усилие, чтобы ограничить 78 столбцов. –

1

В принципе, когда вы просто хотите напечатать что-то вроде этого: «var1, var2, var3, ...», независимо от того, какую форму вы используете. Его единственный вопрос о стиле длины: в одной руке, первый пример более явный, но, с другой стороны, он занимает больше места, может понадобиться новая строка, которая в меньшей степени видима вообще.

Но где первая форма остается полезной, когда у вас есть что-то вроде «var1 var2 var1 var3 var1». Затем, у вас есть два решения, тоже:

# 1 
print("{} {} {} {} {}".format(var1, var2, var1, var3, var1)) 
# 2 
print("{v1} {} {v1} {} {1}".format(var2, var3, v1=var1)) 

Второе решение в целом лучше, но нужно писать ключевые сформулированные аргументы в прошлом может привести к нескольким ошибкам.

Смежные вопросы