[Python] νμ΄μ¬ μΈν°ν리ν°(Interperter) μ½κ² μ΄ν΄νκΈ°
1. μΈν°ν리ν°(Interperter)
- Interperter : "ν΅μμ¬"λΌλ μλ―Έλ₯Ό κ°μ§κ³ μμ.
- μΈν°ν리ν°λ ν μ€μ© λ°λ‘λ°λ‘ μ½κ³ ν΅μμ ν΄μ μ€νμ ν΄μ€λ€λ μλ―Έλ₯Ό κ°μ§κ³ μμ.
- μ½κ²λ§ν΄, νλ‘κ·Έλ¨μ΄ μ€νμ΄ λλ©΄ μ€μκ°μΌλ‘ ν μ€μ© ν΄μν΄μ μ€νμ νλ€λ λ§μ.
- μμμ΄ μκ°ν λ, λ°λ‘ μ΄ν΄νκΈ° μ½κ² μ€ν κ³Όμ μΌλ‘ μλ €μ£Όκ² μ.
2. νμ΄μ¬ νλ‘κ·Έλ¨ μ€ν κ³Όμ
(1) μμ€μ½λ μμ±
- .py νμ₯μλ₯Ό κ°μ§λ μμ€μ½λλ₯Ό μλ―Έν¨.
(2) μμ€μ½λ μ€ν
- λ΄λΆμ μΈ λͺ λ Ήμ΄ python test.py -> test.py νμ΄μ¬ μ½λ μ€ν
(3) νμ΄μ¬ μΈν°νλ¦¬ν° μ€ν
- νμ΄μ¬ μΈν°ν리ν°μμλ μ»΄νμΌλ¬μ μΈν°νλ¦¬ν° 2κ°κ° λ΄μ₯μ΄ λμ΄μμ.
(4) μ»΄νμΌλ¬ μ€ν - λ°μ΄νΈμ½λ λ³ν
- μ»΄νμΌ λ¨κ³μμ λͺ¨λ μμ€μ½λλ₯Ό μ½μ΄ ꡬ문 λΆμ, μ½λ λ³ν(λ°μ΄νΈμ½λ) λ₯Ό μννλ€.
- μμ€μ½λ -> λ°μ΄νΈμ½λ(.pyc)λ‘ λ³ν
- μ΄λ λ§λ€μ΄μ§λ, λ°μ΄νΈμ½λμλ μΈν°ν리ν°κ° ν μ€μ© ν΄μνκΈ° μ’κ² λ°μ΄νΈμ½λλ₯Ό λ§λ€μ΄ λλλ€.
(5) μΈν°νλ¦¬ν° μ€ν - λ°μ΄νΈμ½λλ₯Ό μ΄μ체μ κ° μ½μ μ μλ κΈ°κ³μ΄λ‘ λ³ν
- μ»΄νμΌμ΄ λ λ°μ΄νΈμ½λλ₯Ό μ€ννλ μν μ νλ©°, κΈ°κ³μ΄λ‘ λ³νμ ν΄μ€λ€.
- μΈν°ν리ν°λ‘μ¨, ν μ€μ© ν΄μνλ©° κΈ°κ³μ΄λ‘ λ³νν΄μ μ΄μ체μ λ‘ λ겨주면, μ΄μ체μ κ° μ½λλ₯Ό μ€νν¨.
- μ΄μ체μ λ λ©λͺ¨λ¦¬μ λ³μλ, κ°μ²΄ λ±μ 곡κ°μ ν λΉν¨.
- μ¬μ€μ λ°μ΄νΈμ½λμλ λ Όλ¦¬μ μΌλ‘ μ΄λ―Έ μ½λκ° νμ€μ© μ½λλ‘ νΈνκ² μ λ¦¬κ° λμ΄μμ.
- μ¦, ν μ€μ© μ€νλλ κ² μλλΌ, μ½λμ λ Όλ¦¬μ μΈ νλ¦μ λ°νμΌλ‘ μμ°¨μ μΌλ‘ μ²λ¦¬λλ μ€κ° μ½λκ° λ°μ΄νΈ μ½λμΈ μ μ΄λ€.
- λ Όλ¦¬μ μΌλ‘ μ€ν κ°λ₯ν μ§§μ λ¨μλ‘ μλΌ λμλλ°, κ·Έκ²μ΄ ν μ€λ‘ ννμ΄ λ κ²μ΄λ€.
- μ΄λ°μμΌλ‘ λ°μ΄νΈμ½λ λ Όλ¦¬μ λ¨μ -> μΈν°νλ¦¬ν° κΈ°κ³μ΄ λ³ν -> μ΄μ체μ μ€ν ( λ°λ³΅μ ν¨ )
3. νμ΄μ¬ μΈν°νλ¦¬ν° ν¨μμ ν΄λμ€ μ½κΈ°
- κ·Έλ λ€λ©΄, μΈν°ν리ν°λ ν¨μμ ν΄λμ€λ₯Ό μ΄λ»κ² μ½μκΉ?
(1) ν¨μ
add(1, 2) # μ€λ₯
def add(a, b):
print(a + b)
add(1, 2) # μ μ μ€ν
- μμ μ½λμ κ°μ΄ ν¨μκ° μ‘΄μ¬νκ³ , ν¨μλ₯Ό νΈμΆνλ€κ³ κ°μ ν λ μμ add() νΈμΆ λΌμΈμ μ€λ₯κ° λ κ²μ΄λ€.
- κ·Έ μ΄μ λ, μΈν°ν리ν°λ μμμ μλλ‘ μ½κΈ° λλ¬Έμ μμ add() νΈμΆμ νλ €κ³ ν΄λ λ©λͺ¨λ¦¬μ def ν¨μκ° μ μλμ΄μμ§ μκΈ°λλ¬Έ
- μ¦, μΈν°ν리ν°λ μμμ μλλ‘ μ½λ κ³Όμ μμ ν¨μλ₯Ό μ μΈν λΆλΆμ λ§λκ² λλ©΄, ν΄λΉ ν¨μλ₯Ό λ©λͺ¨λ¦¬μ μ μ₯μ νκ² λλ€.
- κ·Έλ¬λ€ ν¨μ νΈμΆ λΆλΆμ λ§λλ©΄ κΈ°μ΅ν ν¨μλ₯Ό νΈμΆν΄ μ½λλΈλ‘μ μ€ννλ μ리μ΄λ€.
- ν΄λμ€ λν λ§μ°¬κ°μ§μ΄λ€.
(2) import
# test5.py
import test4
test4.add(1, 2)
# import test4 -> μλ¬λ¨
# test4.py
def add(a, b):
print(a + b)
- μ΄λ κ² importλ₯Ό 맨 μμ μ μΈνλ μ΄μ λ μΈν°ν리ν°μ λμ μ리 λλ¬ΈμΈ κ²μ΄λ€.
- μΈν°ν리ν°μ μν΄ ν΄λΉ import λΌμΈμ΄ μ½νκ² λλ©΄, νμΌ(λͺ¨λ)μ λ΄μ©μ λ©λͺ¨λ¦¬μ λ‘λνκ³ λ€μ μ½λλ₯Ό μ€ννλ€.
- κ·Έλ κΈ° λλ¬Έμ import λΌμΈμ΄ 맨μμ μλ κ²μ΄λ€. ( μ°Έκ³ λ‘ μλμ λκ³ ν΄λΉ ν¨μ νΈμΆ μ μ€λ₯ )
4. μ 리
- μ 리λ₯Ό νλ©΄, νμ΄μ¬μμ μΈν°ν리ν°λ νλμ νμ΄μ¬ μΈμ΄λ‘ λ§λ€μ΄μ§ μ½λλ₯Ό μ€ννκΈ° μν νλ‘κ·Έλ¨μ.
- νμ΄μ¬ μΈν°ν리ν°μλ "μ»΄νμΌλ¬", "μΈν°ν리ν°" λ κ°μ§κ° λ€μ΄κ° μμ. μ¦, νμ΄μ¬μ λ κ°μ§λ₯Ό λμμ μ΄μ©μ ν¨.
- μ¦, λ€λ₯Έ μΈμ΄μ λ€λ₯΄κ² νμ΄μ¬μ μ€ν μ, μΈν°νλ¦¬ν° ν κ³³μμ μ»΄νμΌ μΈν°νλ¦¬ν° λ κ°μ§ μμ μ μννλ©° μ€νλ¨.
- μλ°λ₯Ό μλ‘ λ€λ©΄, μλ°λ μ»΄νμΌ μ .class νμΌμ μ§μ κ°μ§κ³ μλ€κ° ν΄λΉ νμΌμ JVMμ λ겨 μ€ννλ λ°©μμ.
- μ°¨μ΄λ₯Ό 보면, νμ΄μ¬μ .pyc νμΌμ μ§μ κ°μ§κ³ μμ§ μκ³ λ°λ‘ μ€νμ μν€λ λλμ΄λΌ 보면λ λ―.
- μΈν°νλ¦¬ν° μ체μ κ°λ μ μ΄ν΄νκΈ° 보λ€λ, μ§μ μΈμ΄λ₯Ό μ΄μ©ν΄ νλ¦μ 보면 μκ°λ³΄λ€ λ§€μ° μ¬μ΄ κ°λ μ.