π λͺ¨λμ΄λ ν¨μλ λ³μ λλ ν΄λμ€λ₯Ό λͺ¨μ λμ νμΌμ΄λ€. λͺ¨λμ λ€λ₯Έ νμ΄μ¬ νλ‘κ·Έλ¨μμ λΆλ¬μ μ¬μ©ν μ μκ²λ λ§λ νμ΄μ¬ νμΌμ΄λΌκ³ λ ν μ μλ€. μ°λ¦¬λ νμ΄μ¬μΌλ‘ νλ‘κ·Έλλ°μ ν λ κ΅μ₯ν λ§μ λͺ¨λμ μ¬μ©νλ€. λ€λ₯Έ μ¬λλ€μ΄ μ΄λ―Έ λ§λ€μ΄ λμ λͺ¨λμ μ¬μ©ν μλ μκ³ μ°λ¦¬κ° μ§μ λ§λ€μ΄μ μ¬μ©ν μλ μλ€. μ¬κΈ°μμλ λͺ¨λμ μ΄λ»κ² λ§λ€κ³ μ¬μ©ν μ μλμ§ μμλ³΄κ² λ€.
π λͺ¨λμ λν΄ μμΈν μ΄ν΄λ³΄κΈ° μ μ κ°λ¨ν λͺ¨λμ νλ² λ§λ€μ΄ 보μ.
# mod1.py
def add(a, b):
return a + b
def sub(a, b):
return a-b
μμ κ°μ΄ addμ sub ν¨μλ§ μλ νμΌ mod1.pyλ₯Ό λ§λ€κ³ C:\doit λλ ν°λ¦¬μ μ μ₯νμ. μ΄ mod1.py νμΌμ΄ λ°λ‘ λͺ¨λμ΄λ€. μ§κΈκΉμ§ μλν°λ‘ λ§λ€μ΄ μ¨ νμΌκ³Ό λ€λ₯΄μ§ μλ€.
β νμ΄μ¬ νμ₯μ .pyλ‘ λ§λ νμ΄μ¬ νμΌμ λͺ¨λ λͺ¨λμ΄λ€. β
import mod1
print(mod1.add(3, 4))
print(mode1.sub(4, 2))
mod1.pyλ₯Ό λΆλ¬μ€κΈ° μν΄ import mod1μ΄λΌκ³ μ λ ₯νμλ€. μ€μλ‘ import mod1.pyλ‘ μ λ ₯νμ§ μλλ‘ μ£Όμνμ. importλ μ΄λ―Έ λ§λ€μ΄ λμ νμ΄μ¬ λͺ¨λμ μ¬μ©ν μ μκ² ν΄μ£Όλ λͺ λ Ήμ΄μ΄λ€. mod1.py νμΌμ μλ add ν¨μλ₯Ό μ¬μ©νκΈ° μν΄μλ μ μμ κ°μ΄ mod1.addμ²λΌ λͺ¨λ μ΄λ¦ λ€μ "."(λνΈ μ°μ°μ)λ₯Ό λΆμ΄κ³ ν¨μ μ΄λ¦μ μ°λ©΄ λλ€.
β» importλ νμ¬ λλ ν°λ¦¬μ μλ νμΌμ΄λ νμ΄μ¬ λΌμ΄λΈλ¬λ¦¬κ° μ μ₯λ λλ ν°λ¦¬μ μλ λͺ¨λλ§ λΆλ¬μ¬ μ μλ€. νμ΄μ¬ λΌμ΄λΈλ¬λ¦¬λ νμ΄μ¬μ μ€μΉν λ μλμΌλ‘ μ€μΉλλ νμ΄μ¬ λͺ¨λμ λ§νλ€.
π importμ μ¬μ© λ°©λ²μ λ€μκ³Ό κ°λ€.
import λͺ¨λμ΄λ¦
μ¬κΈ°μμ λͺ¨λ μ΄λ¦μ mod1.pyμμ .py νμ₯μλ₯Ό μ κ±°ν mod1λ§μ κ°λ¦¬ν¨λ€.
λλ‘λ mod1.add, mod1.subμ²λΌ μ°μ§ μκ³ add, subμ²λΌ λͺ¨λ μ΄λ¦ μμ΄ ν¨μ μ΄λ¦λ§ μ°κ³ μΆμ κ²½μ°λ μμ κ²μ΄λ€. μ΄λ΄ λλ "from λͺ¨λ μ΄λ¦ import λͺ¨λ ν¨μ"λ₯Ό μ¬μ©νλ©΄ λλ€.
π₯ from λͺ¨λμ΄λ¦ import λͺ¨λν¨μ
μ νμμ μ¬μ©νλ©΄ μμ κ°μ΄ λͺ¨λ μ΄λ¦μ λΆμ΄μ§ μκ³ λ°λ‘ ν΄λΉ λͺ¨λμ ν¨μλ₯Ό μΈ μ μλ€.
from mod1 import add
add(3, 4)
κ·Έλ°λ° μμ κ°μ΄ νλ©΄ mod1.py νμΌμ add ν¨μλ§ μ¬μ©ν μ μλ€. add ν¨μμ sub ν¨μλ₯Ό λ λ€ μ¬μ©νκ³ μΆλ€λ©΄ μ΄λ»κ² ν΄μΌ ν κΉ?
2κ°μ§ λ°©λ²μ΄ μλ€.
from mod1 import add, sub
π 첫 λ²μ§Έ λ°©λ²μ μμ κ°μ΄ from λͺ¨λ μ΄λ¦ import λͺ¨λ ν¨μ1, λͺ¨λ ν¨μ2μ²λΌ μ¬μ©νλ κ²μ΄λ€. μ½€λ§λ‘ ꡬλΆνμ¬ νμν ν¨μλ₯Ό λΆλ¬μ¬ μ μλ€.
from mod1 import *
ππ λ λ²μ§Έ λ°©λ²μ μμ κ°μ΄ * λ¬Έμλ₯Ό μ¬μ©νλ λ°©λ²μ΄λ€.
from mod1 import *λ mod1.pyμ λͺ¨λ ν¨μλ₯Ό λΆλ¬μ μ¬μ©νκ² λ€λ λ»μ΄λ€.
mod1.py νμΌμ λ€μκ³Ό κ°μ΄ λ³κ²½νλ€.
# mod1.py
def add(a, b):
return a+b
def sub(a, b):
return a-b
print(add(1, 4))
print(sub(4, 2))
λ€μκ³Ό κ°μ΄ λ³κ²½λ mod1.py νμΌμ μλμ κ°μ΄ μ€νμμΌλ³΄λ©΄
import mod1
5μ 2κ° μΆλ ₯μΌλ‘ λμ€κ² λ κ²μ΄λ€.
νμ§λ§ λ¨μ§ mod1.py νμΌμ addμ sub ν¨μλ§ μ¬μ©νκΈΈ μνλ€λ©΄
λ€μκ³Ό κ°μ μΆλ ₯μ λ°κ°μ§ μμ κ²μ΄λ€. κ·Έλ¬λ―λ‘ μ΄λ¬ν λ¬Έμ λ₯Ό λ°©μ§νκΈ° μν΄μλ mod1.py νμΌμ λ€μκ³Ό κ°μ΄ λ³κ²½ν΄μΌ νλ€.
# mod1.py
def add(a, b):
return a+b
def sub(a, b):
return a-b
if __name__ == "__main__":
print(add(1, 4))
print(sub(4, 2))
λ€μκ³Ό κ°μ΄ λ³κ²½ν κ²½μ° mod1.py νμΌ λ΄μμ μ€ννλ κ²½μ°κ° μλλΌλ©΄
import mod1
λ€μκ³Ό κ°μ μ½λμμ μ무 μΆλ ₯κ°λ λμ€μ§ μκ² λ κ²μ΄λ€.
μ¦ if__name__ == "__main__"λ₯Ό μ¬μ©νλ©΄ λνν μΈν°ν리ν°λ λ€λ₯Έ νμΌμμ μ΄ λͺ¨λμ λΆλ¬μ μ¬μ©ν λλ if__name__ == "__main__"μ΄ κ±°μ§μ΄ λμ΄ ifλ¬Έ λ€μ λ¬Έμ₯μ΄ μνλμ§ μκ²λλ€.
νμ΄μ¬μ name λ³μλ νμ΄μ¬μ΄ λ΄λΆμ μΌλ‘ μ¬μ©νλ νΉλ³ν λ³μ μ΄λ¦μ΄λ€. λ§μ½ C:\doit>python mod1.pyμ²λΌ μ§μ mod1.py νμΌμ μ€νν κ²½μ° mod1.pyμ name λ³μμλ main κ°μ΄ μ μ₯λλ€. νμ§λ§ νμ΄μ¬ μ Έμ΄λ λ€λ₯Έ νμ΄μ¬ λͺ¨λμμ mod1μ import ν κ²½μ°μλ mod1.pyμ name λ³μμλ mod1.pyμ λͺ¨λ μ΄λ¦ κ° mod1μ΄ μ μ₯λλ€.
π μ§κΈκΉμ§ μ΄ν΄λ³Έ λͺ¨λμ ν¨μλ§ ν¬ν¨νμ§λ§ ν΄λμ€λ λ³μ λ±μ ν¬ν¨ν μλ μλ€. λ€μ νλ‘κ·Έλ¨μ μμ±ν΄ 보μ.
# mod2.py
PI = 3.141592
class Math:
def solv(self, r):
return PI * (r ** 2)
def add(a, b):
return a+b
μ΄ νμΌμ μμ λμ΄λ₯Ό κ³μ°νλ Math ν΄λμ€μ λ κ°μ λνλ add ν¨μ κ·Έλ¦¬κ³ μμ£Όμ¨ κ°μ ν΄λΉλλ PI λ³μμ²λΌ ν΄λμ€, ν¨μ, λ³μ λ±μ λͺ¨λ ν¬ν¨νκ³ μλ€.
μ΄λ΄ κ²½μ° λ€μκ³Ό κ°μ΄ λͺ¨λμ λΆλ¬μ λͺ¨λ μμ μλ λ³μλ ν¨μ, ν΄λμ€ λ±μ μ¬μ©ν μ μλ€.
import mod2
a = mod2.Math()
print(a.solv(2))
b = mod2.add(mod2.PI, 4)
print(b)