import mymath
print(mymath.area(5))
78.5
from 모듈명 import 이름들
¶import
하는 이름들이 기존에 미리 존재하고 있었다면 그 이름들에 의해 참조되던 기존 객체들은 상실된다.from mymath import area, mypi
print(area(5))
78.5
from 모듈명 import *
¶from mymath import *
print(area(5))
78.5
import 모듈명 as 새로운 모듈 이름
¶import string as chstr
print(chstr)
print()
print(chstr.punctuation)
<module 'string' from '/Users/yhhan/anaconda3/lib/python3.6/string.py'> !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
from 모듈명 import 이름 as 새로운 이름[, 이름 as 새로운 이름]
¶from string import punctuation
print(punctuation)
from string import punctuation as punc
print(punc)
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
from math import floor as flr, ceil as cil
print(flr)
print(flr(4.5))
print(cil)
print(cil(4.5))
print()
from math import floor, ceil
print(floor(4.5))
print(ceil(4.5))
<built-in function floor> 4 <built-in function ceil> 5 4 5
import
문은 보통의 문(statement)이 작성될 수 있는 곳이면 어디에서나 사용 가능def
문 안이나 if
문 안에서 사용할 수 있음def str_test(s):
import string
t = string.split(s)
return(t)
import에 의한 모듈 코드 수행
import는 코드를 가져오기만 하는 것이 아니라 가져온 코드를 수행한다.
#FILE : mymath.py
mypi = 3.14
def add(a, b):
return a + b
def area(r):
return mypi * r * r
print(area(4.0))
50.24
import mymath
#기존:
#50.24
import mymath
를 수행할 때 발생하는 일mymath.pyc
를 찾는다.mymath.pyc
가 없다면 mymath.py
를 찾아서 mymath.pyc
를 생성한다.mymath.pyc
를 메모리로 읽어들여 수행한다..pyc
파일.pyc
생성에 대한 판단.py
수정 시간이 .pyc
수정 시간보다 더 최근일 때.py
가 없이도 .pyc
파일만 있어도 import
가능string = "My first string"
import string
print(string)
<module 'string' from '/Users/yhhan/anaconda/lib/python3.6/string.py'>
import string
string = "My first string" #여기서 string이란 이름은 문자열을 참조하게 된다.
print(string)
My first string
import
되었던 모듈은 메모리에 적재되어지고, 나중에 다시 동일한 모듈을 import
하면 메모리에 적재되어 있던 모듈이 즉시 사용된다.import string
string.a = 1
string = "My first string"
print(string)
import string
print(string.a) # 여기서 string 모듈이 기존에 이미 등록되었던 것임을 알 수 있다.
My first string 1
import되어 수행되는지를 구별하기 위해 주로 활용
prname.py
를 직접 수행할 때의 출력 내용: __main__ipython prname.py
prname.py
가 최상위 모듈로서 수행됨을 의미#FILE : prname.py
print(__name__)
__main__
prname.py
가 모듈로서 다른 이름 공간으로 import
되어질 때의 출력 내용: prname
import prname
print(prname.__name__)
prname
import string
print(string.__name__)
import re
print(re.__name__)
import os
print(os.__name__)
string re os
add()
함수 호출이 일어난다.#file: module_test.py
def add(a, b):
return a + b
def f():
print("Python is becoming popular.")
if __name__ == "__main__":
print(add(1, 10))
f()
11 Python is becoming popular.
import
되어질 때에는 __name__은 모듈 이름 자체이므로 위 코드에서 if
문이 수행되지 않는다.test()
함수 호출이 곧바로 되지 않는다.import module_test
import Speech
sys.path
(또는 PYTHONPATH
환경 변수)에 열거된 폴더 중 하나에 위치해야 한다.Speech/Recognition/HMM.py
코드 내용def train():
print("Train")
pass
def loadModel():
print("LoadModel")
pass
def saveModel():
print("SaveModel")
pass
import
하기¶import Speech
Speech.Recognition.HMM.train()
Train
import Speech.Recognition.HMM
Speech.Recognition.HMM.train()
Train
from Speech.Recognition import HMM
HMM.train()
Train
from Speech.Recognition.HMM import train
train()
Train
import *
하기¶from Speech.Recognition.HMM import *
train()
loadModel()
saveModel()
Train LoadModel SaveModel
참고 문헌: 파이썬(열혈강의)(개정판 VER.2), 이강성, FreeLec, 2005년 8월 29일