Я не смог найти ссылки PEP на следующее соглашение:
def dict_to_var(dictionary:dict) -> None:
for variable, value in dictionary.items():
if variable not in globals():
globals()[variable] = value
, которое предполагает , что каждый ключ в dictionary
является строкой (допустимое имя переменной) (хотя вКлавиши Python dict
могут включать в себя такие вещи, как tuple
s, и выставляют эти строковые значения в качестве переменных в контексте globals
(так как предоставление значения locals()
внутри функции не сделает эти значения доступными вне вызова этой функции).
Например:
example = {'a': 'string', 'b': True}
dict_to_var(example)
print(a, b)
# 'string', True
Я полагаю, для ясности не следует этого делать, и если кому-то лень писать dict[var]
, то явно выставлять переменные, необходимые через var = dict[var_name]
.
Однако я был бы признателен, если бы кто-то смог найти для этого основание PEP.