새소식

데이터분석/둘째주

파이썬 Python : 실행파일(메인파일)

  • -
728x90

 

전역변수 _ _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))
-- 출력 --

30
-10
200
0.5

 

## 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))
-- 출력 --

30
-10
200
0.5

 

 

[실습] 단위 환산 모듈을 만들고 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')

 

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.