def safe_sum(a, b): if type(a) != type(b): print("더할수 있는 것이 아닙니다.") return else: result = sum(a, b) return result
def _init_() : # 초기화함수 # 모듈 # mod1.py #저장할 파일명 def sum(a,b): if type(a) != type(b): #타입형이 다르면 에러문 만들고 끝내도록 print("더할수 있는 것이 아닙니다.") return else: result = sum(a,b) return result # ----------------- 다른파일 import mod1 print(mod1.sum(3,4)) 7
# 2. sys.path에 경로를 추가해서 사용하는 방법 #sys모듈을 이용해서 파이썬 라이브러리가 설치되어 있는 디렉토리를 확인 할 수 있다. import sys print(sys.path) #sys.path에 우리의 모듈의 위치를 추가해주자. 리스트 형태이므로 append로 저장 가능 sys.path.append('./ch05_python advance') ###모듈 만들고 불러보기 #mod1.py import sys sys.path.append('./ch05_python advance') import mod1 print(mod1.sum(3, 4)) #7이 나온다. #mod1.py에 safe_sum 함수 추가 print(mod1.safe_sum(3, 4)) print(mod1.safe_sum(1, 'a')) #sum을 바로 쓰고 싶을 때 from mod1 import sum print(sum(3, 4)) #sum과 safe_sum모두 사용하고 싶을 때 from mod1 import sum, safe_sum from mod1 import * # mod1.py
from mod1 import sum, safe_sum print(sum(3, 4)) print(sum(3, 4)) print(sum(3, 4)) # print(sum(3,'4')) # print(mod1.safe_sum(3,'4')) # print(mod1.safe_sum(3,4)) print(safe_sum(3, 4))
import sys sys.path.append("/Users/jinju/Desktop/취업준비/jumpToPython/05_module") import mod1 print(mod1.sum(3, 4)) print(mod1.safe_sum(3, 4)) mod1
# from 모듈명 import 모듈 함수 # 모듈 사용 시 해당 모듈의 클래스, 함수, 변수 등을 모듈명 없이 사용할 수 있음 # sum() # import mod1 # print("mod1 모듈의 sum 함수 사용 : {0}".format(mod1.sum(3, 4))) # print() # print("mod1의 safe_sum 함수 사용 : {0}".format(mod1.safe_sum(3, 4))) # print("mod1의 safe_sum 함수 사용 : {0}".format(mod1.safe_sum(1, "a"))) # from 절을 사용하여 mod1의 sum, safe_num을 모두 불러와 사용하기 때문에 mod1을 붙여서 사용하면 오히려 오류가 발생함 from mod1 import sum, safe_sum print("mod1 모듈의 sum 함수 사용 : {0}".format(sum(3, 4))) # mod1을 붙이면 오류가 난다. # 문제 1) 사칙연산을 위한 계산기 프로그램을 모듈을 활용한 방식으로 제작하세요 # 모듈명 : Cal # 사칙연산 함수명 plus, minus, multi, divide # 각각 함수는 매개 변수를 2개씩 가지고 있음(first, second) print() # import Cal # print("Cal 모듈 plus 함수 사용 : {0}".format(Cal.plus(4, 2))) # print("Cal 모듈 minus 함수 사용 : {0}".format(Cal.minus(4, 2))) # print("Cal 모듈 multi 함수 사용 : {0}".format(Cal.multi(4, 2))) # print("Cal 모듈 divide 함수 사용 : {0}".format(Cal.divide(4, 2)))
#1.해당경로로 가서 ptrhon 실행 #2.import mod1 #3.print(mod1.sum(1,2)) def safe_sum(a, b): if type(a) != type(b): print("더할수 있는 것이 아닙니다.") return else: result = sum(a, b) return result #print(mod1.safe_sum(1, 'a')) #더할 수 있는 값이 아닙니다. #None from mod1 import sum sum(3, 4) #함수의 바로 사용 from mod1 import * #mod1 파일의 모든 겍체 #main 다음 객체만 실행되도록 한다. if __name__ == "__main__": print(safe_sum('a', 1)) print(safe_sum(1, 4)) print(sum(10, 10.4))
# import mod1 all import from mod1 import sum, sub a = sum(1, 2) b = sub(2, 1) print(a) print(b)
from mod1 import sum, safe_sum print(sum(3, 4)) # 7 print(safe_sum(3, 4)) # 7
### Module ### import mod1 print(mod1.sum(3, 4)) # 7 print(mod1.safe_sum(3, 5)) # 8 print(mod1.safe_sum(3, 'a')) # You can't add a to b # None from mod1 import sum, safe_sum # from mod1 import * print(sum(5, 10)) # 15 import mod2 a = mod2.Math() print(a.solv(2)) # 12.566368 ### another way to import module ### # import sys # sys.path # You can show the directory built in Python Library # sys.path.append("~/Python/J2P/MyModules") ### setting PythonPATH # set PYTHONPATH=C:\Python\Mymodules : win
#!/usr/bin/env python import sys import mod1 import mod2 #print sys.path print "sum module test" print str(mod1.sum(10, 20)) print print "strsum module test" print mod2.strsum("Hello", "World")
#_*_ coding: utf-8 _*_ from mod1 import sum, safe_sum print sum(3,4) print safe_sum(3,4)
import sys import mod1 print(mod1.sum(2, 3)) print(mod1.safe_sum(2, '3')) print(mod1.PI) a = mod1.Math() print(a.solv(3)) # print the directory installed python library. print(sys.path) # if you want to load a module, then you can append its path to sys.path. # or use PYTHONPATH (환경변수) as 'set PYTHONPATH=C:/' sys.path.append("C:/") print(sys.path)
def test_sum(): assert 7 == mod1.sum(3,4)
def test_sum(): assert 7 == mod1.sum(3, 4)
# module_prac.py import mod1 print(mod1.safe_sum(3,'a')) print(mod1.sum(10,20)) import mod2 result = mod2.sum(3,4) print(result) # mod1.py def sum(a,b): return a+b def safe_sum(a,b): if type(a) != type(b): print("더할수 있는 것이 아닙니다.") return else: result = sum(a,b) return result if __name__ == "__main__": print(safe_sum('a',1)) print(safe_sum(1,4)) print(sum(10,10.4)) # mod2.py PI = 3.141592 class Math: def solv(self, r):
import mod1 import mod2 # use mod1 print(mod1.sum(1, 2)) print(mod1.safe_sum(1, "aa")) print(mod1.safe_sum(1, 2)) # use mod2 print(mod2.PI) a = mod2.Math() print(a.solv(2)) print(mod2.sum(mod2.PI, 4.4))
#모듈이란? 미리 만들어 놓은 py 파일을 함수 변수 클래스를 쓰겠다 # seems like 라이브러리? #만약 다른 폴더에 모듈이 있을경우 sys 에 경로를 추가해주고 from 으로 가져온다. import sys sys.path.append("C:\\Users\\dkrle\\Desktop\\project\\python\\subfolder") from mod2 import add from mod1 import sum #이렇게 모드1 안에 있는 함수임을 명시해줘야하나 보다. #import mod1 이라고 해줄때는 밑과 같이 적는다. #print(mod1.sum(4,5)) #from mod1 import sum 이라고 해주면 밑과 같이 해준다. print(sum(4, 5)) print(add(4, 5)) #모듈에 print 해주니까 print 도 불러오고 sum도 불러옴 # 만약 패키지 이면 이게 진짜 라이브러리랑 비슷 ㅇㅇ # game/ # __init__.py # sound/ # __init__.py # echo.py # graphic/ # __init__.py # render.py # 위와 같이 폴더가 구성되어 있다면 # from game.sound import echo
#_*_ coding: utf-8 _*_ #import urlopen import mod1 print mod1.sum(1,2) print mod1.safe_sum(1,2) print mod1.safe_sum(1,'a')
import mod1 as cal print(cal.sum(2, 3)) print(cal.mul(3, 3))
#-*- coding: utf-8 -*- from mod1 import sum,safe_sum print sum(1,2) print safe_sum(1,2)
import mod1 print(mod1.sum(3,4))
# 모듈 만들고 불러 보기 print('1. 모듈 만들고 불러 보기') import mod1 print('mod1.sum(3,4) = {}'.format(mod1.sum(3, 4))) print('\nmod1.safe_sum(1,\'a\') =') mod1.safe_sum(1, 'a') """ mod1.sum, mod1.safe_sum 처럼 쓰지 않고 그냥 sum, safe_sum 처럼 함수를 쓰고 싶은 경우도 있을 것이다. 이럴 때는 'from 모듈이름 import 모듈함수' 를 사용하면 된다. ex) from mod1 import sum sum(3, 4) >> 7 """ print() # if __name__ == "__main__" : 의 의미 # mod1.py 참고 import mod2 # __name__ == "__main__" 이 거짓이 되므로 아무런 값도 출력되지 않는다. print('mod2.PI = {}'.format(mod2.PI)) a = mod2.Math() print(a.solv(2)) print(mod2.sum(mod2.PI, 4.4))
# load module import mod1 # have to use same directory print(mod1.sum(3, 4)) # 7 print(mod1.safe_sum(4, 'a')) # error # load function from mod1 import sum print(sum(3, 5)) # 8 from mod1 import sum, safe_sum from mod1 import * # load var, class import mod2 print(mod2.PI) a = mod2.Math() print(a.solv(2)) print(mod2.sum(mod2.PI, 4.4)) from mod2 import Math, PI b = Math() print(b, PI) # another directory module import sys # sys.path.append("directory")
from mod1 import sum # 이렇게 쓰면 한번에 쓸 수 있지만 한 sum 함수를 한번밖에 쓰지 못한다. # 그래서 import 다음에 sum, safe_sum을 써주거나, *를 써준다 * = 모든 것. print(sum(4, 3))
# 모듈 사용 시 해당 모듈명과 클래스, 함수, 변수 등을 모듈명.멤버로 사용해야 함 # mod.sum() # from 모듈명 import 모듈 함수 # 모듈 사용 시 해당 모듈의 클래스, 함수, 변수 등을 모듈명 없이 사용할 수 있음 # import mod1 # print("mod1 모듈의 sum 함수 사용 : {0}".format(mod1.sum(3,4))) # print() # print("mod1의 safe_sum 함수 사용 : {0}".format(mod1.safe_sum(3, 4))) # print("mod1의 safe_sum 함수 사용 : {0}".format(mod1.safe_sum(1, "a"))) # from 절을 사용하여 mod1의 sum, safe_sum을 모두 불러와 사용하기 때문에 mod1을 붙여서 사용하면 오히려 오류가 발생함 from mod1 import sum, safe_sum print("mod1 모듈의 sum 함수 사용 : {0}".format(sum(3, 4))) # 문제1) 사칙 연산을 위한 계산기 프로그램을 모듈을 활용한 방식으로 제작하세요 # 모듈명 : Cal # 사칙연산 함수명 : plus, minus, multi, divide # 각각 함수는 매개 변수를 2개씩 가지고 있음(first, second) print() print("==문제1==") import Cal print("Cal 모듈의 plus 함수 사용 : {0}".format(Cal.plus(3, 4))) print("Cal 모듈의 minus 함수 사용 : {0}".format(Cal.minus(3, 4))) print("Cal 모듈의 multi 함수 사용 : {0}".format(Cal.multi(3, 4))) print("Cal 모듈의 divide 함수 사용 : {0}".format(Cal.divide(3, 4))) # 클래스나 변수 등을 포함한 모듈 # 일반 함수가 들어있는 모듈과 동일함
import mod1 # mod1을 import함 from mod1 import sum # sum이라는 함수만 import함 from mod1 import * # *은 mod1 모듈에 있는 모든 것을 import하다는 점이다. # 하지만 모든 것이 import되는 것은 아니다. # 자세한 내용은 mod1.py의 주석을 확인하자. print(sum(1, 2)) # import 했기 때문에 사용 가능하다 new_instance = cal() print(new_instance.mul(3, 4)) # class 또한 import 해서 정상적으로 사용이 가능하다. print(_private_num) print(__all_private_num)
def plus5(a): return mod1.sum(5 + a)