from 코드잇 파이썬 중급
현재 파일에서 사용가능한 기능 확인
from area import circle
print(dir()) -> circle, __name__ ~
__name__
던더 파일파일에서 정의된 모든 이름들
dir()은 파일의 네임스페이스를 리턴해줌
똑같은 이름으로 여러 함수가 정의되면 가장 나중의 함수가 사용됨.
main.py에서 같은 이름 함수를 작성했고, 이름을 중복되게 하지 않으려면 from area import square as sq
모듈에서 불러올 때 이름 as somethingelse로 변경해줌.
또는 사용시 모듈.함수 형식으로 모듈을 특정하여 사용
import module
area.square((2))
import sys
print(sys.path)
sys는 system 스탠다드 모듈에서 확인 가능.
실행환경에 관련된 함수와 변수가 들어있음.
일반적으로 site-package 폴더에 외부 패키지가 저장됨.
프로그램은 여러 파일로 구성되어 있을 수 있다.
직접 실행하지 않고 다른파일에서 가져다 씀
-> 모듈을 스크립트로 사용할 수도 있음.
우리가 그 안에 어떤 내용을 담을지 정한 것일 뿐, 파일 자체에 특별한 차이가 있는 것은 아님. 어떤 파이썬 파일이든 직접 실행할 수도 있고, 다른 곳에서 불러올 수도 있다. 상황에 따라 바뀜.
모듈을 임포트하면 모듈의 모든 것이 실행된다. 테스트 코드까지 다 출력되는 문제가 생김.
__name__
&__main__
__name__
: 모듈의 이름을 저장해놓은 변수. 값은 파이썬에서 알아서 정해줌.
-파이썬 파일을 직접 사용하면main
.
-다른곳에서 임포트해서 사용하면 원래 이름으로 설정됨.
실행 순서도 메인 먼저.
실행이란 파일명 지정하고 초록 삼각형 눌러서 run 하는 것.
if __name__ == '__main__':
function call
파일에서 어떤 프로그램을 작동시키는 부분을 그냥 main이라는 함수 안에 넣어 주어 가독성 높일 수 있다. 주로 테스트 코드를 넣어준다.
if name == 'main' 안에 있는 코드는 파일이 직접 실행될 때만 실행되니까 그 안에서 main 함수를 호출해 주면 됩니다.
PI = 3.14
# 원의 면적을 구해 주는 함수
def circle(radius):
return PI * radius * radius
# 정사각형의 면적을 구해 주는 함수
def square(length):
return length * length
# 함수들을 테스팅 하는 메인 함수
def main():
# circle 함수 테스트
print(circle(2) == 12.56)
print(circle(5) == 78.4)
# square 함수 테스트
print(square(2) == 4)
print(square(5) == 25)
if __name__ == '__main__':
main()
비슷한 모듈을 묶어둠