Сохраните результат вызова locals()
(или vars()
), чтобы вернуть локальную область функции. В противном случае locals()
внутри выражения генератора вернет локальную область gen-expr.
def test3():
lvar1 = 1
lvar2 = 2
lvar3 = 3
scope = locals()
myDict = dict((name, eval(name, scope)) for name in [
"lvar1", "lvar2", "lvar3"])
print(myDict["lvar1"])
BTW, создание словаря не требуется:
myDict = locals() # or vars()
Добавление префикса зарезервированных слов в C#, покончили.
public enum Test
{
@as = 1,
@is = 2
}
Необходимо будет снабдить префиксом их символ для использования их. Вот страница MSDN, которая объясняет это.