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

 

(파이썬) 내장함수 eval(), globals locals

 

이번에는 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(), globals locals 인수

 

 

eval() 함수의 인수로 함수명을 사용할 수도 있습니다.

def func1():
    print('func1')

def func2(x):
    print(x*x)
    
eval("func1()")
eval("func2(2)")

(Output)

func1

4

 

 

반응형