Python
(파이썬) 내장함수 eval(), globals locals 인수
코딩ABC
2023. 12. 28. 10:20
반응형
파이썬 내장함수인 eval() 함수에 대해 알아보겠습니다.
eval(expression, globals=None, locals=None) |
문자열로 된 파이썬 표현식을 평가하고 실행합니다.
인수 expression은 문자열로 된 파이썬 식이며, globals는 딕셔너리(dictionary)이며, locals은 모든 객체(object)가 맵핑될 수 있습니다.
>>> eval('10 + 20 * 2') 50 >>> x=1 >>> eval('x+1') 2 |
globals 인수는 다음과 같이 사용될 수 있습니다.
>>> exp1 = 'r * r * 3.14159' >>> eval(exp1, {'r':10}) 314.159 >>> exp2='a + b * c' >>> eval(exp2, {'a':1, 'b':2, 'c':3}) 7 |
이번에는 globals 인수를 비워두고, locals 인수를 사용해봤습니다.
expr="x+y" v=eval(expr, {}, {'x':10, 'y':5}) print(v) |
(Output)
15
globals, locals 인수를 모두 사용해도 결과는 잘 나옵니다.
expr="x+y" v=eval(expr, {'x':10}, {'y':5}) print(v) |
(Output)
15
eval() 함수의 인수로 함수명을 사용할 수도 있습니다.
def func1(): print('func1') def func2(x): print(x*x) eval("func1()") eval("func2(2)") |
(Output)
func1
4
반응형