#File: mymath.py mypi = 3.14 def add(a, b): return a + b def area(r): return mypi * r * r import mymath print dir(mymath) # mymath에 정의된 이름들 확인하기 print mymath.mypi # mymath 안에 정의된 mypi를 사용한다 print mymath.area(5) # mymath 안에 정의된 area를 사용한다 x = 10 print globals() print locals() # module01.py # -*- coding:utf-8 -*- a = 1 b = 2 def f(): localx = 10 localy = 20 print '함수 내에서 전역 변수:', globals() print print '함수 내에서 지역 변수:', locals() f() print print '모듈 수준에서의 전역 변수:', globals() print print '모듈 수준에서의 지역 변수:', locals() #module02.py a = 1 b = 2 gns = globals() print gns print gns['c'] = 3 print gns import string print dir(string) print string.__dict__ # 출력은 너무 길어서 생략 print string.__dict__.keys() # 이름 키:속성 사전에서 키만 뽑아낼 수 있다. 이것은 dir(string)과 동일 import string for name in dir(string): if name not in string.__dict__.keys(): print name import string string.a = 1 print string.a class C: # 클래스도 독립적인 이름 공간 a = 2 # 클래스 이름 공간 내에 변수 선언 pass # 클래스 정의 c = C() # 클래스 인스턴스 객체 생성 c.a = 1 # 클래스에서 생성된 인스턴스 객체도 별도의 이름 공간 print c.a print c.__class__.a print C.a x = 10 # 현재 모듈 내부에 정의되는 이름 def f(): a = 1 b = 2 # 현재 모듈에 정의되는 함수 f 내에 이름 a,b를 정의하고있다. 함수도 독립적인 이름 공간 f.c = 1 print f.c print print f.a import sys print sys.path import sys sys.path.append('~/mypythonlib') print sys.path import mymath print mymath.area(5) from mymath import area, mypi print area(5) from mymath import * print area(5) import string as chstr print chstr print print chstr.punctuation from string import replace as substitute print substitute print substitute('ham chicken spam', 'chicken', 'egg') from string import replace as substitute, upper as up print up print up('abc') def str_test(s): import string t = string.split(s) return t from Tkinter import (Tk, Frame, Button, Entry, Canvas, Text, LEFT, DISABLED, NORMAL, RIDGE, END) mypi = 3.14 def add(a, b): return a + b def area(r): return mypi * r * r print area(4.0) import mymath02 modulename = 're' re = __import__(modulename) print re string = "My first string" import string print string import string string = "My first string" #여기서 string이란 이름은 문자열을 참조하게 된다. print string import string string.a = 1 string = "My first string" print string import string print string.a # 여기서 string 모듈이 기존에 이미 등록되었던 것임을 알 수 있다. #file : teststring1.py import string # string 모듈을 import 함 print 'test string1' string.a = 1 # import한 string 모듈에 a 변수 등록 print "---" import teststring2 # 서로 다른 모듈인 teststring2를 import 함 print "---" print 'test string1 done' #file : teststring2.py import string # 동일한 string 모듈을 import 함 print 'test string2' print string.a # 다른 모듈에서 등록한 a 변수 사용 가능 print 'test string2 done' import mymath mymath.mypi = 6.2 # 값 수정(원래 모듈 파일에 정의된 값은 3.14) import mymath # 다시 import print mymath.mypi # 3.14가 아니라 6.2 -> 즉 이미 적재되어 있는 모듈 그냥 이용 print mymath.mypi reload(mymath) print mymath.mypi #FILE : prname.py print __name__ import prname print prname.__name__ import string print string.__name__ import re print re.__name__ import mimetools print mimetools.__name__ import os print os.__name__ #file: name_attr_test.py def test(): print "Python is becoming popular." if __name__ == "__main__": test() import name_attr_test import calendar print getattr(calendar, 'prmonth') # 문자열 이름을 이용한 모듈 내 속성(변수나 함수) 참조 print calendar.prmonth # 직접 calendar.prmonth를 참조하는 것과 같다 calendar.prmonth(2014, 10) getattr(calendar, 'prmonth')(2014, 10) #같은 출력결과 f = getattr(calendar, 'prmonth') f(2014, 10) #같은 출력결과 import calendar setattr(calendar, 'spam', 10) print calendar.spam print hasattr(calendar, 'spam') print delattr(calendar, 'spam') print calendar.spam print dir(calendar) print print calendar.__dict__ for attr, val in calendar.__dict__.items(): print 'name = %-20s, type = %s' % (attr, type(val)) import Speech def train(): print "Train" pass def loadModel(): print "LoadModel" pass def saveModel(): print "SaveModel" pass import Speech.Recognition.HMM Speech.Recognition.HMM.train() from Speech.Recognition import HMM HMM.train() from Speech.Recognition.HMM import train train() from Speech.Recognition.HMM import * train() loadModel() saveModel() from Speech.Recognition import * print HMM print NN print DTW HMM.train() from Speech import * print Synthesis print Recognition.HMM def warping(): print "warping" pass def train(): print "Train" pass def loadModel(): print "LoadModel" pass def saveModel(): print "SaveModel" pass import DTW DTW.warping() def train(): print "Train" pass def loadModel(): print "LoadModel" pass def saveModel(): print "SaveModel" pass import DTW DTW.warping() import Adaptation.ML Adaptation.ML.test() def train(): print "Train" pass def loadModel(): print "LoadModel" pass def saveModel(): print "SaveModel" pass import DTW DTW.warping() from Adaptation import ML ML.test() def train(): print "Train" pass def loadModel(): print "LoadModel" pass def saveModel(): print "SaveModel" pass import DTW DTW.warping() from Adaptation.ML import * test()