# test8.py # p207 # 모듈 : 변수, 함수, 클래스, 모아놓은 파일 # 패키지 : 모듈을 모아서 저장하는 폴더
# sum() 두 수를 받아서 합을 구해서 리턴 def sum(a, b): return a + b
cmd 창에서 함수를 호출해보자!
test8.py 의 위치 : D:\workspace_py\py1\test8.py
cmd 창 열기
> d:
D드라이브로 이동
> cd D:\workspace_py\py1
파일 들어있는 위치로 이동
> dir
안에 있는 거 확인
> python
파이썬 창으로 이동
> sum 함수 찾아보기
이렇게 하면 함수 못찾고 오류남!
> 파일 임포트 해오기
test8 파일을 가져오겠다는 명령(모듈 파일)
> 다시 sum 함수 호출
test8.sum() 으로 호출!
이제 결과값 잘 나온다
# safe_sum() 함수 정의 두 수를 받아서 # type() 타입이 틀리면 "더할 수 없는 데이터입니다" 리턴 # 같으면 두 수 더해서 리턴 def safe_sum(a, b): if type(a) != type(b): return "더할 수 없는 데이터입니다" else: return a + b
타입이 다를 때와 같을 때 출력창이 다르다!
< 함수 Import 방법 >
# from 모듈이름(파일이름) import 함수이름 # from test8 import sum # from test8 import sum. safe_sum # from test8 import * # 모든 함수 import # print(sum(1, 2)) # 3 # print(safe_sum(1, 2)) # 3
# import 모듈이름(파일이름) as 약자 # import test8 as t8 # print(t8.sum(1, 2)) # 3 # print(t8.safe_sum(1, 2)) # 3
# Math 클래스 slov() 원면적 함수 PI = 3.141592 class Math: def solv(self, r): return PI*(r**2)
print(PI) # 객체 생성 m = Math() # solv() 함수 호출 print(m.solv(5))
우리가 테스트로 출력한 게 cmd 창에도 나온다
# 테스트용으로 파일 실행할 때 동작 # import 할 때는 동작안됨 if __name__=="__main__": print(PI) # 객체 생성 m = Math() # solv() 함수 호출 print(m.solv(5))
이제 아무것도 안뜬다!
if __name__=="__main__":
이거 기억 안나면 그냥 주석처리하깈ㅋㅋㅋ
======== test9.py
py1_1 Package 만들기
py1_1 밑에 py1_2 Package 만들기
======== py1_2 패키지 안에 ptest.py 만들기
# ptest.py
def prn(): print("py1_1 패키지 py1_2 패키지 prn() 함수")
< test9.py >
# test9.py
# 패키지 : 파이썬 파일을 계층적으로 관리, 폴더 # ex) 폴더.폴더.파일이름
# ptest.py 파일 가져오기 # prn() # ptest.py 안에 있는 prn() 함수 호출 못함! import py1.py1_1.py1_2.ptest py1.py1_1.py1_2.ptest.prn()
import py1.py1_1.py1_2.ptest as pt # 가장 많이 쓰임 pt.prn()