在 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()})
- 是否可以保证
raw_input
会在 getpass
之前被调用?
- 与先保存函数的输出然后从变量创建字典相比,这种方法实际上有什么好处吗?
- 这是'pythonic'做事的方式吗?我的猜测是不,因为一行中塞满了很多东西,而且可以说它不是很可读。
- 是的,因为 python 像英语一样从左到右求值。这些函数将从左到右调用。
- 略短
- 不是超级 pythonic 但也不可怕
如果你想确保 raw_input()
在 getpass()
之前调用,我认为你应该使用这样的变量:
username = raw_input('Username: ')
passwd = getpass.getpass()
user_dict = {username : passwd}
使用变量将使您的代码更具可读性并易于维护或调试。
首先,代码将按raw_input('Username: ')
执行,然后getpass.getpass()
最后执行命令。
其次,它更短,如果您的程序小而简单,那是个好方法。
第三,它很短,我猜有点像 pythonic,但在工程方面并不好。
我正在创建一个需要用户登录 Web 服务的 python 应用程序。凭据作为 json 字典在 POST 请求中传递到服务器。为了避免不必要地将密码保存在变量中,我想我会做如下的事情:
json.dumps({'username': raw_input('Username: '), 'password': getpass.getpass()})
- 是否可以保证
raw_input
会在getpass
之前被调用? - 与先保存函数的输出然后从变量创建字典相比,这种方法实际上有什么好处吗?
- 这是'pythonic'做事的方式吗?我的猜测是不,因为一行中塞满了很多东西,而且可以说它不是很可读。
- 是的,因为 python 像英语一样从左到右求值。这些函数将从左到右调用。
- 略短
- 不是超级 pythonic 但也不可怕
如果你想确保 raw_input()
在 getpass()
之前调用,我认为你应该使用这样的变量:
username = raw_input('Username: ')
passwd = getpass.getpass()
user_dict = {username : passwd}
使用变量将使您的代码更具可读性并易于维护或调试。
首先,代码将按raw_input('Username: ')
执行,然后getpass.getpass()
最后执行命令。
其次,它更短,如果您的程序小而简单,那是个好方法。
第三,它很短,我猜有点像 pythonic,但在工程方面并不好。