使用函数的返回值作为python中字典中的值

时间:2015-01-31 00:48:11

标签: python json function python-2.7 dictionary

我正在创建一个需要用户登录Web服务的python应用程序。凭据作为json字典在POST请求中传递给服务器。为了避免在变量中不必要地保存密码,我想我会做类似以下的事情:

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

  1. 是否保证在raw_input之前调用getpass
  2. 此方法实际上是否有任何好处,而不是首先保存函数的输出,然后从变量创建字典?
  3. 这是一个' pythonic'做事的方式?我的猜测是否定的,因为有很多东西塞进了一行,而且它可以说是不太可读。

2 个答案:

答案 0 :(得分:3)

  1. 是的,因为python是从左到右评估的,就像英语一样。这些功能将从左到右调用。
  2. 略短
  3. 不是超级pythonic但不是aweful

答案 1 :(得分:2)

如果你想确保在raw_input()之前调用getpass(),我认为你应该使用这样的变量:

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

user_dict = {username : passwd}

使用变量将使您的代码更易读,易于维护或调试。

首先,代码将以raw_input('Username: ')执行,然后getpass.getpass()最后生成一个字典。

其次,它更短,如果你的程序小而简单,这是一个好方法。

第三,它是短暂的,我猜的是pythonic,但在工程方面并不好。