在 python 中使用函数的 return 值作为字典中的值

Using the return value of a function as the value in a dictionary in python

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

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

  1. 是否可以保证 raw_input 会在 getpass 之前被调用?
  2. 与先保存函数的输出然后从变量创建字典相比,这种方法实际上有什么好处吗?
  3. 这是'pythonic'做事的方式吗?我的猜测是不,因为一行中塞满了很多东西,而且可以说它不是很可读。
  1. 是的,因为 python 像英语一样从左到右求值。这些函数将从左到右调用。
  2. 略短
  3. 不是超级 pythonic 但也不可怕

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

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

user_dict = {username : passwd}

使用变量将使您的代码更具可读性并易于维护或调试。

首先,代码将按raw_input('Username: ')执行,然后getpass.getpass()最后执行命令。

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

第三,它很短,我猜有点像 pythonic,但在工程方面并不好。