Рассмотрим этот фрагмент:
globalVar = 25
def myfunc(paramVar):
localVar = 30
print "Vars: {globalVar}, {paramVar}, {localVar}!".format(**VARS_IN_SCOPE)
myfunc(123)
Где VARS_IN_SCOPE
- это dict, который после этого будет содержать globalVar
, paramVar
и localVar
, между прочим.
Я бы хотел в основном ссылаться на все переменные, которые в настоящее время находятся в области внутри строки. Следовательно, ожидаемый результат будет:
Vars: 25, 123, 30
Я могу достичь этого, пройдя **dict(globals().items() + locals().items())
до format()
. Всегда ли это правильно или есть некоторые угловые случаи, с которыми это выражение обрабатывало бы неправильно?
Переписано для уточнения вопроса.