Явное лучше, чем неявное

В «Дзен Питона» есть вот такая строчка

  • Явное лучше, чем неявное.

Но при этом в Python постоянно опускаются круглые скобки

Чтобы создать кортеж, нужно обязательно поставить запятую

a = (100,)
print(type(a)) #tupple

Но если не поставить запятую будет создаваться что угодно но не кортеж

a = (100)
print(type(a)) #int
a = ("str")
print(type(a)) #string
a = ([1,2,3])
print(type(a)) #list

# и т.д.

Можно даже сделать так

(a) = (100)
print(type(a)) # int

Из за опускания круглых скобок мне не сразу был понятен этот пример

rec = (0,1),(1,0)
(x1,y1),(x2,y2) = rec 

Опускание круглых скобок разве не приводит к неявности? Они как бы и есть, но их как бы и нет.


Ответы (1 шт):

Автор решения: CrazyElf
rec = (0,1),(1,0)
(x1,y1),(x2,y2) = rec 

Скорее этот пример не про скобки и кортежи, а про упаковку и распаковку переменных. В данном случае скобки вообще не нужны, если вы дальше не собираетесь использовать переменную rec как-то отдельно:

rec = 0,1,1,0
x1,y1,x2,y2 = rec 

Тот же самый код с тем же самым результатом. Просто есть правило, что переменные, перечисленные через запятую, упаковываются в кортеж. А распаковка может идти из кортежей, списков, итераторов (причём, возможны вложения) - не важно из чего, главное, чтобы можно было взять оттуда нужное число элементов.

Скорее, в вашем примере наоборот добавлены лишние скобки, чтобы сгруппировать вместе значения координат x,y просто по смыслу. Если бы речь шла только о получении результата, скобки были бы вообще не нужны.

→ Ссылка