Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 11, 2016 15:07:37

dima2881
Зарегистрирован: 2016-01-09
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Ньансы синтаксиса

Подскажите почему нужно обернуть число (в этом примере 2) в скобки, без них ошибка синтаксиса возникает, а с ними все работает как задумано.

result = [1, 2, 3, 4, 5]
print(*filter((2).__rmod__, result))

Офлайн

#2 Янв. 11, 2016 15:42:34

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Ньансы синтаксиса

Питон думает что 2 это переменная, а она не может начинаться с цифры.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Янв. 11, 2016 15:50:50)

Офлайн

#3 Янв. 11, 2016 17:02:39

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Ньансы синтаксиса

Rodegast
Питон думает что 2 это переменная
Не, он пытается прочитать литерал, а там после точки непонятно что.

dima2881
Подскажите почему нужно обернуть число
Метод вызывается у объекта. А чтобы получить объект, используется имя или выражение. Одна двойка выражением не является, а скобки являются выражением.

Так же, как здесь
>>> (1 + 2).__eq__(3)
True
>>>
только вместо 1 + 2 просто 2.



Офлайн

#4 Янв. 11, 2016 18:11:42

dima2881
Зарегистрирован: 2016-01-09
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Ньансы синтаксиса

py.user.next
Спасибо за развернутый ответ)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version