python νλ‘κ·Έλλ°μμ λ³μλ μ μλ³μμ μ§μλ³μλ‘ λλ©λλ€. μ΄λ€μ νμ©κ³Ό μ°¨μ΄λ₯Ό μ΄ν΄νλ κ²μ python νλ‘κ·Έλλ°μ κΈ°λ³Έ μμ μ€ νλμ λλ€. μ΄ κΈμμλ μ μλ³μμ μ§μλ³μμ κ°λ μ μμΈν μ΄ν΄λ³΄κ³ , μ€ν¬ν¬μ νμ© νμ λν΄ μμλ³΄κ² μ΅λλ€.
β£ λͺ©μ°¨
νμ΄μ¬ λ³μμ λν ν¬μ€ν
μ μ°Έκ³ ν΄ μ£ΌμΈμπ
1. μ μλ³μπ³
νμ΄μ¬μμ μ μλ³μλ νλ‘κ·Έλ¨ μ 체μμ μ κ·Ό κ°λ₯ν λ³μλ₯Ό μλ―Έν©λλ€. μ΄ λ³μλ€μ ν¨μ μΈλΆμμ μ μλλ©°, μ¬λ¬ ν¨μμμ 곡μ λ μ μμ΅λλ€. μ μλ³μλ₯Ό μ¬μ©νλ©΄ μ¬λ¬ ν¨μ κ°μ λ°μ΄ν°λ₯Ό μ½κ² 곡μ ν μ μμ΅λλ€.
ν¨μ λ΄μμ μ μλ³μλ₯Ό μ¬μ©νλ €λ©΄ ν΄λΉ λ³μλ₯Ό global ν€μλλ‘ μ μΈν΄μΌ ν©λλ€. μ΄λ κ² νλ©΄ ν¨μ λ΄μμ μ μ λ³μλ₯Ό λ³κ²½ν μ μμ΅λλ€.
global_var = 10 # μ μ λ³μ global_varμ 10μΌλ‘ μ΄κΈ°νν©λλ€.
def my_function():
global global_var # global_varλ₯Ό μ μ λ³μλ‘ μ μΈν©λλ€.
global_var += 1 # μ μ λ³μ κ°μ 1 μ¦κ°μν΅λλ€.
print("μ μ λ³μ κ°:", global_var) # μ¦κ°λ μ μ λ³μ κ°μ μΆλ ₯ν©λλ€.
my_function() # my_function νΈμΆνμ¬ μ μ λ³μ κ°μ μ¦κ°μν΅λλ€.
# μΆλ ₯ κ²°κ³Ό: μ μ λ³μ κ°: 11
2. μ§μλ³μπ
μ§μλ³μλ νΉμ λ²μ λ΄μμλ§ μ κ·Ό κ°λ₯ν λ³μλ₯Ό λ§ν©λλ€. μ£Όλ‘ ν¨μ λ΄λΆμμ μ μΈλλ©°, ν΄λΉ ν¨μ λ΄μμλ§ μ ν¨ν©λλ€. μ§μλ³μλ₯Ό μ¬μ©νλ©΄ ν¨μ λ΄λΆμμλ§ νμν λ°μ΄ν°λ₯Ό μμ νκ² κ΄λ¦¬ν μ μμ΅λλ€.
def my_function():
local_var = 5 # μ§μ λ³μ local_varλ₯Ό 5λ‘ μ΄κΈ°νν©λλ€.
print("μ§μλ³μ:", local_var) # μ§μ λ³μ κ°μ μΆλ ₯ν©λλ€.
my_function() # my_function νΈμΆνμ¬ μ§μ λ³μ κ°μ μΆλ ₯ν©λλ€.
# μΆλ ₯ κ²°κ³Ό: μ§μλ³μ: 5
3. μ μλ³μμ μ§μλ³μμ μ°¨μ΄μ π
μ μλ³μμ μ§μλ³μμ μ£Όμ μ°¨μ΄μ μ λ³μμ μ€μ½νμ λ²μμ μμ΅λλ€.
- μ€μ½ν(Scope) : μ μλ³μλ μ μ μ€μ½νμμ μ μλμ΄ νλ‘κ·Έλ¨ μ 체μμ μ κ·Ό κ°λ₯ν©λλ€. μ¦, μ΄λ κ³³μμλ ν΄λΉ λ³μμ μ κ·Όν μ μμ΅λλ€. λ°λ©΄μ μ§μλ³μλ νΉμ ν¨μ λ΄λΆμμ μ μλμ΄ ν΄λΉ ν¨μ λ΄μμλ§ μ κ·Ό κ°λ₯ν©λλ€. ν¨μ μΈλΆμμλ μ§μλ³μμ μ κ·Όν μ μμ΅λλ€.
- λ²μ(Range) : μ μλ³μμ λ²μλ νλ‘κ·Έλ¨ μ 체μ΄λ©°, ν΄λΉ λ³μλ νλ‘κ·Έλ¨μ΄ μ€νλλ λμ λ©λͺ¨λ¦¬μ μμ£Όν©λλ€. λ°λΌμ μ μλ³μλ νλ‘κ·Έλ¨μ΄ μ΄λμλ μ§ νΈμΆνκ³ λ³κ²½ν μ μμ΅λλ€. λ°λ©΄μ μ§μλ³μλ ν΄λΉ ν¨μκ° νΈμΆλ λ μμ±λκ³ , ν¨μκ° μ’ λ£λλ©΄ λ©λͺ¨λ¦¬μμ μ κ±°λ©λλ€. λ°λΌμ μ§μλ³μλ ν΄λΉ ν¨μ λ΄μμλ§ μ¬μ©λλ©°, ν¨μ μΈλΆμμλ μ κ·Όν μ μμ΅λλ€.
π μ¬κΈ°μ μ κΉ!
μ€μ½ν(Scope)λ?
μ€μ½ν(scope)λ λ³μκ° μ ν¨ν λ²μλ₯Ό λνλ΄λ κ°λ μ λλ€. κ°λ¨ν λ§ν΄, μ΄λ€ μ½λ λΈλ‘μμ λ³μμ μ κ·Όν μ μλμ§λ₯Ό κ²°μ ν©λλ€. νμ΄μ¬μμλ μ€μ½νκ° λ³μμ μλ³ κ°λ₯μ±κ³Ό λ³μκ° μ¬μ©λ μ μλ μ½λμ λ²μλ₯Ό κ²°μ ν©λλ€.
μ μ μ€μ½ν(Global Scope)λ νλ‘κ·Έλ¨ μ 체μμ μ κ·Όν μ μλ λ²μλ₯Ό λ§νλ©°, μ μλ³μλ μ μ μ€μ½νμμ μ μλ©λλ€. ν¨μ λ΄λΆμμ μ μλ λ³μλ μ§μ μ€μ½ν(Local Scope)μ μνλ©°, ν΄λΉ ν¨μ λ΄μμλ§ μ κ·Όν μ μμ΅λλ€. ν¨μκ° νΈμΆλ λλ§λ€ μλ‘μ΄ μ§μ μ€μ½νκ° μμ±λλ©°, ν¨μ μ€νμ΄ μ’ λ£λλ©΄ ν΄λΉ μ€μ½νλ μ¬λΌμ§λλ€.
λ³μμ μ€μ½νλ νμ΄μ¬μμ λ³μ μ΄λ¦μ μ°Ύλ λ° μ¬μ©λλ κ·μΉμ μ μν©λλ€. μ¦, μ½λμμ λ³μλ₯Ό μ°Έμ‘°ν λ νμ΄μ¬ μΈν°ν리ν°λ μ€μ½νλ₯Ό νμΈνμ¬ ν΄λΉ λ³μλ₯Ό μ°Ύμ΅λλ€. λ§μ½ μ§μ μ€μ½νμ λ³μκ° μμΌλ©΄ μ μ μ€μ½νμμ λ³μλ₯Ό μ°Ύμ΅λλ€. μ΄λ¬ν μ€μ½ν 체μΈ(scope chain)μ λ³μμ λ²μλ₯Ό κ²°μ νλ λ° μ€μν μν μ ν©λλ€.
κ°λ¨ν λ§ν΄, μ€μ½νλ λ³μκ° μ΄λμμ μ μλμκ³ μ΄λμμ μ¬μ©λ μ μλμ§λ₯Ό κ²°μ νλ κ²μΌλ‘, μ½λμ κ°λ μ±κ³Ό λ³μμ μΆ©λμ λ°©μ§νλ λ° λμμ΄ λ©λλ€.
4.μ μλ³μμ μ§μλ³μμ νμ© νπ
λ³μμ μ€μ½νμ λ²μλ₯Ό κ³ λ €νμ¬ μ½λλ₯Ό μμ±ν λ λͺκ°μ§ μ£Όμν΄μΌ ν μ¬νκ³Ό νμ© νμ΄ μμ΅λλ€.
- λ³μλͺ μΆ©λ λ°©μ§: μ μλ³μμ μ§μλ³μμ μ΄λ¦μ΄ μΆ©λνμ§ μλλ‘ μ£Όμν΄μΌ ν©λλ€. νΉν μ μλ³μμ λμΌν μ΄λ¦μ μ§μλ³μλ₯Ό μ μΈνλ©΄ ν¨μ λ΄μμλ ν΄λΉ μ§μλ³μκ° μ°μ μ μΌλ‘ μ¬μ©λ©λλ€.
- κ°λ₯ν μ§μλ³μ μ¬μ© κΆμ₯: ν¨μ λ΄μμ νμν λ°μ΄ν°λ μ§μλ³μλ‘ μ μΈνμ¬ μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. μ§μλ³μλ ν¨μ λ΄μμλ§ μ ν¨νκΈ° λλ¬Έμ λ€λ₯Έ ν¨μλ μ μ μ€μ½νμμ μΆ©λμ λ°©μ§ν μ μμ΅λλ€.
- ν¨μ μΈμ νμ©: ν¨μμ 맀κ°λ³μλ₯Ό ν΅ν΄ μΈλΆμμ λ°μ΄ν°λ₯Ό μ λ¬λ°λ κ²μ΄ μ’μ μ΅κ΄μ λλ€. μ΄λ₯Ό ν΅ν΄ ν¨μμ μμ‘΄μ±μ μ€μ΄κ³ μ½λμ μ μ°μ±μ λμΌ μ μμ΅λλ€.
- μ μλ³μ μ¬μ© μ μ£Όμ: μ μλ³μλ νλ‘κ·Έλ¨ μ΄λμλ μ§ μ κ·Όν μ μκΈ° λλ¬Έμ μ¬μ©ν λ μ£Όμκ° νμν©λλ€. μ½λμ 볡μ‘μ±μ μ¦κ°μν€κ³ μμμΉ λͺ»ν μ€λ₯λ₯Ό λ°μμν¬ μ μμΌλ―λ‘ μ΅λν μ¬μ©μ μμ νλ κ²μ΄ μ’μ΅λλ€.
μ μλ³μμ μ§μλ³μμ μ μ ν νμ©μ μ½λμ κ°λ μ±κ³Ό μ μ§λ³΄μμ±μ λμ΄λ λ° μ€μν μν μ ν©λλ€. μ΄λ₯Ό ν΅ν΄ λ³μμ λ²μμ μ€μ½νλ₯Ό μ μ΄ν΄νκ³ , μ½λλ₯Ό λμ± ν¨μ¨μ μΌλ‘ μμ±ν μ μμ΅λλ€.
π μ¬κΈ°μ μ κΉ!
ν¨μ μΈμ νμ©
ν¨μ μΈμλ₯Ό νμ©νλ κ²μ νλ‘κ·Έλλ°μμ μ’μ μ΅κ΄ μ€ νλμ λλ€. μ΄λ₯Ό ν΅ν΄ ν¨μλ μΈλΆμμ νμν λ°μ΄ν°λ₯Ό 맀κ°λ³μλ₯Ό ν΅ν΄ μ λ¬λ°μ μ¬μ©ν μ μμ΅λλ€. μ΄λ ν¨μμ μμ‘΄μ±μ μ€μ΄κ³ μ½λμ μ μ°μ±μ λμ΄λ λ° λμμ΄ λ©λλ€.
μλ₯Ό λ€μ΄, ν¨μκ° νΉμ μμ μ μννκΈ° μν΄ μΈλΆ λ°μ΄ν°λ₯Ό νμλ‘ νλ€κ³ κ°μ ν΄ λ΄ μλ€. μ΄λ ν¨μ λ΄λΆμμ μ§μ λ°μ΄ν°λ₯Ό μ°Έμ‘°νλ©΄ ν΄λΉ ν¨μλ μΈλΆ νκ²½μ μμ‘΄νκ² λ©λλ€. μ΄λ ν¨μλ₯Ό μ¬μ¬μ©νκΈ° μ΄λ ΅κ² λ§λ€κ³ , μ½λμ μ μ§λ³΄μλ₯Ό μ΄λ ΅κ² ν μ μμ΅λλ€. λν, κ°μ ν¨μλ₯Ό μ¬λ¬ κ³³μμ μ¬μ©ν λλ§λ€ λ°μ΄ν°λ₯Ό λ³κ²½ν΄μΌ νλ λ²κ±°λ‘μμ΄ λ°μν μ μμ΅λλ€.
νμ§λ§ ν¨μ μΈμλ₯Ό νμ©νλ©΄ μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€. ν¨μμ νμν λ°μ΄ν°λ₯Ό 맀κ°λ³μλ‘ μ λ¬λ°μΌλ©΄, ν΄λΉ ν¨μλ μΈλΆ νκ²½μ μμ‘΄νμ§ μκ³ λ 립μ μΌλ‘ λμν μ μμ΅λλ€. λ°λΌμ ν¨μλ₯Ό μ¬μ¬μ©νκΈ° μ¬μμ§λ©°, μ½λμ μ μ°μ±μ΄ λμμ§λλ€. λν ν¨μλ₯Ό νΈμΆν λλ§λ€ λ€μν λ°μ΄ν°λ₯Ό μ λ¬νμ¬ λ€μν μν©μ λμν μ μμ΅λλ€.
μ΄μ²λΌ ν¨μ μΈμλ₯Ό νμ©νμ¬ μΈλΆ λ°μ΄ν°λ₯Ό μ λ¬λ°λ κ²μ μ½λμ λͺ¨λνμ μ¬μ¬μ©μ±μ λμ΄λ λ° μ€μν μν μ ν©λλ€. μ΄λ μ½λλ₯Ό λμ± ν¨μ¨μ μΌλ‘ μμ±νκ³ κ΄λ¦¬ν μ μλλ‘ λμμ€λλ€.
μλ₯Ό λ€μ΄, λ μλ₯Ό λνλ ν¨μλ₯Ό λ§λ€μ΄ λ³΄κ² μ΅λλ€. μ΄ ν¨μλ μΈλΆμμ λν μλ₯Ό 맀κ°λ³μλ‘ μ λ¬λ°μ΅λλ€.
def add_numbers(num1, num2):
result = num1 + num2
return result
# ν¨μ νΈμΆ
sum_result = add_numbers(5, 3)
print("λ μμ ν©:", sum_result) # μΆλ ₯ κ²°κ³Ό: λ μμ ν©: 8
μμ μμ μμ add_numbers ν¨μλ num1κ³Ό num2λΌλ λ κ°μ 맀κ°λ³μλ₯Ό λ°μ΅λλ€. μ΄ ν¨μλ λ°μ λ μλ₯Ό λνμ¬ κ²°κ³Όλ₯Ό λ°νν©λλ€. μ΄λ ν¨μ λ΄λΆμμλ μΈλΆμμ μ λ¬λ°μ num1κ³Ό num2λ₯Ό μ¬μ©νμ¬ κ³μ°μ μνν©λλ€.
μ΄ ν¨μλ₯Ό νΈμΆν λ μ λ¬νλ κ°μ λ°λΌ λ μμ ν©μ΄ λ€λ₯΄κ² κ³μ°λ©λλ€. μλ₯Ό λ€μ΄, add_numbers(5, 3)μ νΈμΆνλ©΄ 5μ 3μ λν κ²°κ³ΌμΈ 8μ΄ λ°νλ©λλ€. μ΄μ²λΌ ν¨μ μΈμλ₯Ό νμ©νμ¬ ν¨μμ νμν λ°μ΄ν°λ₯Ό μΈλΆμμ μ λ¬λ°μ μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ ν¨μλ μΈλΆ νκ²½μ λ 립μ μΌλ‘ λμν μ μμΌλ©°, μ½λμ μ μ°μ±μ΄ λμμ§λλ€.
5. ν΅μ¬ λ΄μ©π