Как print (input () + input ()) работает в python?Без назначения переменных? - PullRequest
0 голосов
/ 11 декабря 2018
a = input()
b = input()
print(a+b)

Это можно записать как print(input()+input()), и это работает.Как это работает?Где хранятся входы временно?

Ответы [ 3 ]

0 голосов
/ 11 декабря 2018

Предпосылка: input() - это обычная функция, которая блокирует до тех пор, пока пользователь что-то не введет. Как только это будет сделано, данные будут оценены и возвращены.

С этим набором ваше утверждение состоит изнесколько частей:

print(...) - это вызов функции, который печатает результат выражения , заключенный в скобки.

выражение тогда равно input() + input().Поскольку operator() имеет более высокий приоритет, чем operator+, два вызова input() будут оцениваться до суммы.

Результат из input() равен неназванная временная переменная , которая существует только до тех пор, пока не будет оценено полное выражение .После выполнения + временные переменные фактически теряются (и в конечном итоге будут собираться мусором).

0 голосов
/ 11 декабря 2018

Не забывайте, что сам ввод является функцией, поэтому значение сохраняется как часть процесса самой функции.Вывод является простым возвращением, поэтому вы можете свободно вызывать функцию без параметров, и она тоже разделяет ее.

def input(*kwargs):
    eval(raw_input(prompt))

То, что это не похоже на сложную функцию, не означает, что это не так.

https://docs.python.org/2/library/functions.html#input

0 голосов
/ 11 декабря 2018

input () возвращает входное значение из приглашения.

Это можно сделать путем немедленного возврата, а не сохранения временного хранилища.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...