2015-01-31 2 views
0

Я создаю приложение python, которое требует от пользователя входа в веб-службу. Учетные данные передаются на сервер в POST-запросе в виде json-словаря. Для того, чтобы избежать излишне сохранения пароля в переменной я понял, я хотел бы сделать что-то вроде следующего:Использование возвращаемого значения функции как значения в словаре в python

json.dumps({'username': raw_input('Username: '), 'password': getpass.getpass()})

  1. Есть ли гарантия, что raw_input будет вызвана, прежде чем getpass?
  2. Есть ли вообще какая-либо польза в этом методе для сохранения вывода функций сначала, а затем создания словаря из переменных?
  3. Является ли это «питоническим» способом делать вещи? Я думаю, что нет, так как в одной строке есть много вещей, и это, возможно, не очень читаемо.

ответ

3
  1. Да, поскольку python оценивается слева направо, как английский. функции будут называться слева направо.
  2. его немного короче
  3. не супер вещий, но не aweful либо
2

Если вы хотите застраховать raw_input() вызывается перед getpass(), я думаю, вы должны использовать переменные, как это:

username = raw_input('Username: ') 
passwd = getpass.getpass() 

user_dict = {username : passwd} 

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

Во-первых, код будет выполнен как raw_input('Username: '), затем getpass.getpass() сделать наконец-топик.

Во-вторых, он короче, и если ваша программа мала и проста, это хороший способ.

В-третьих, это короткий, вроде pythonic, я думаю, но не очень хорошо в технической части.

+0

Я согласен, что это выглядит немного лучше, однако он не отвечает на вопросы, заданные ОП. (Я дал вам +1 все равно) –

+0

Спасибо, я обновлю. –

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