IT’s Portfolio

[Python] eval(), exec()에 λŒ€ν•΄μ„œ λ³Έλ¬Έ

Development Study/Python

[Python] eval(), exec()에 λŒ€ν•΄μ„œ

f1r3_r41n 2022. 8. 16. 10:46
728x90
λ°˜μ‘ν˜•

πŸ’» eval()κ³Ό exec()

  • 파이썬 λ‚΄μž₯ν•¨μˆ˜
  • λ¬Έμžμ—΄λ‘œ ν‘œν˜„λœ 파이썬 μ½”λ“œ μ‹€ν–‰ μ‹œ μ‚¬μš©ν•˜λŠ” ν•¨μˆ˜

πŸ‘‰πŸ» eval()

  • evaluate의 μ•½μž

    • 말 κ·ΈλŒ€λ‘œ 값을 κ΅¬ν•˜λŠ” ν•¨μˆ˜
  • νŒŒλΌλ―Έν„°λ‘œ '식'을 λ°›μ•„ 컴파일 μ½”λ“œλ‘œ λ³€ν™˜ν•¨

    • exec()와 달리 'λ¬Έ'을 νŒŒλΌλ―Έν„°λ‘œ 받을 수 μ—†μŒ
  • 값을 λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜

      a = 5
      b = 6
      a = eval('a+b')
      print(a)
    
      >>> 11

πŸ‘‰πŸ» exec()

  • execute의 μ•½μž

    • 말 κ·ΈλŒ€λ‘œ μ‹€ν–‰ν•˜λŠ” ν•¨μˆ˜
  • νŒŒλΌλ―Έν„°λ‘œ 받은 'λ¬Έμžμ—΄'을 컴파일 μ½”λ“œλ‘œ λ³€ν™˜ν•˜μ—¬ 싀행함

  • 값을 λ°˜ν™˜ν•˜μ§€ μ•ŠλŠ” ν•¨μˆ˜

      a = 5
      b = 6
      exec("print(a, '+', b, '=', a+b);a+=1;b+=1;"*3)
    
      >>> 5 + 6 = 11
          6 + 7 = 13
          7 + 8 = 15
728x90
λ°˜μ‘ν˜•
Comments