我经常发现自己以以下样式编写重复感觉的代码(碰巧在 Django 内部settings.py
,但这个问题的含义更普遍):
STACKEXCHANGE_CLIENT_ID = os.getenv('STACKEXCHANGE_CLIENT_ID')
STACKEXCHANGE_CLIENT_SECRET = os.getenv('STACKEXCHANGE_CLIENT_SECRET')
# et cetera
当然,在很多情况下我不希望我的局部变量名称与环境变量的名称匹配,但这种情况发生得足够多,我想知道是否有避免名称重复的好方法。
下面的代码对我有用:
_locals = locals()
def f(x):
_locals[x] = os.getenv(x)
f('TERM')
print TERM
但我无意在生产中使用它,因为引用Python 文档locals()
:
注意:不得修改本词典的内容;
所以我想知道是否存在有效的“支持”/“批准”解决方案,如果有,它会是什么样子?