전역변수 _ _name_ _ 을 이용한 실행파일 지정
_ _name_ _ 전역변수
- __name__에는 모듈 이름이 저장되거나 '__main__'이 저장된다.
- __name__ 은 파이썬을 실행을 시키면 기본적으로 제공하는 변수이다.
- 파일썬 파일 이름이 __name__ 변수에 자동으로 저장되어 있다.
예시) addModule.py 의 __name__ 변수에는 'addModule' 문자열이 저장되어 있다.
- 실행(메인) 파일의 __name__ 변수에는 파일 이름이 아니라 '__main__' 문자열이 저장되어 있다.
- 타언어(C, java 계열)에서는 메인 메소드를 제공하며, 메인 메소드가 들어있는 파일을 가장 먼저 실행한다.
- 파이썬은 메인 메소드가 없으므로, __name__ 변수에 '__main__' 이 저장되어 있는 파일을 먼저 실행한다.
## addModule.py
def add(n1, n2):
return n1 + n2
print(f'__name__: {__name__}')
-- 출력 --
__name__: __main__ |
## subModule.py
def sub(n1, n2):
return n1 - n2
print(f'__name__: {__name__}')
-- 출력 --
__name__: __main__ |
## mulModule.py
def mul(n1, n2):
return n1 * n2
print(f'__name__: {__name__}')
-- 출력 --
__name__: __main__ |
## divModule.py
def div(n1, n2):
return n1 / n2
print(f'__name__: {__name__}')
-- 출력 --
__name__: __main__ |
## module.py
import addModule
import subModule
import mulModule
import divModule
print(addModule.add(10, 20))
print(subModule.sub(10, 20))
print(mulModule.mul(10, 20))
print(divModule.div(10, 20))
-- 출력 --
__name__: __addModule__ __name__: __subModule__ __name__: __mulModule__ __name__: __divModule__ 30 -10 200 0.5 |
## addModule.py
def add(n1, n2):
return n1 + n2
if __name__ == '__main__':
# 모듈을 직접 실행할때는 아래 실행문이 실행되고, 모듈이 호출될 때는 실행되지 않음.
print(f'__name__: {__name__}')
## subModule.py
def sub(n1, n2):
return n1 - n2
if __name__ == '__main__':
print(f'__name__: {__name__}')
## mulModule.py
def mul(n1, n2):
return n1 * n2
if __name__ == '__main__':
print(f'__name__: {__name__}')
## divModule.py
def div(n1, n2):
return n1 / n2
if __name__ == '__main__':
print(f'__name__: {__name__}')
## module.py
import addModule
import subModule
import mulModule
import divModule
print(addModule.add(10, 20))
print(subModule.sub(10, 20))
print(mulModule.mul(10, 20))
print(divModule.div(10, 20))
## module.py
import addModule
import subModule
import mulModule
import divModule
def mod(n1, n2):
return n1 % n2
if __name__ == '__main__':
print(addModule.add(10, 20))
print(subModule.sub(10, 20))
print(mulModule.mul(10, 20))
print(divModule.div(10, 20))
[실습] 단위 환산 모듈을 만들고 cm를 mm, inch, m, ft로 변환해보자.
모듈파일 / 실행파일, __name__ 전역변수 사용
#모듈 파일
#unitConversion.py
def cmToMm(n):
return round(n * 10, 3)
def cmToInch(n):
return round(n * 0.393, 3)
def cmToM(n):
return round(n * 0.01, 3)
def cmToFt(n):
return round(n * 0.032, 3)
if __name__ == "__main__":
print(f'10cm: {cmToMm(10)}mm')
print(f'10cm: {cmToInch(10)}inch')
print(f'10cm: {cmToM(10)}M')
print(f'10cm: {cmToFt(10)}ft')
#실행 파일
import unitConversion as uc
if __name__ == "__main__":
inputNumber = int(input('길이(cm) 입력: '))
returnValue = uc.cmToMm(inputNumber)
print(f'{inputNumver}cm : {returnValue}mm')
returnValue = uc.cmToInch(inputNumber)
print(f'{inputNumver}cm : {returnValue}inch')
returnValue = uc.cmToM(inputNumber)
print(f'{inputNumver}cm : {returnValue}M')
returnValue = uc.cmToFt(inputNumber)
print(f'{inputNumver}cm : {returnValue}ft')