파이썬따라하기/5클래스모듈패키지

#클래스모듈패키지2편 - 파이썬 모듈 기초 python

모두의 실험실 2023. 5. 7. 14:42
728x90

공부와 기억과 경험은 반복의 연속과정임

아무리 반복해도 지나치지 않기에 

파이썬의 코드 형태 구조에 대해 

다시 언급함

 

변수 >> 함수 >> 클래스 >> 모듈 >> 패키지

패키지로 갈 수록 큰 형태임

 

모듈의 사전적인 뜻은 '부분' '구성단위'  등 일부분을 뜻하고

파이썬에서는 함수 클래스를 모아 놓아 놓은 파일임

 

모듈은 파이썬이 구현된 .py 파일이 결과물임

.py에는 클래스와 함수가 선택적으로 구성될 수 있음

#modoopython.py
class calculator():
    def add(self,input1,input2):
        print(input1+input2)
        
def minus(input1,input2):
    print(input1 - input2)   
    

'''
import modoopython
modoopython.minus(3,2)
mc = modoopython.calculator()
mc.add(3,2)
'''

-결과(이미지)

modoopython.py에는 클래스와 함수가 각각 1개씩 구성됨

modoopython.py가 있는 D:\tmp 폴더로 가서 파이썬 실행함

그 이유는 D:\tmp가 전역경로(global path)가 아니어서 파이썬에서

인식을 못함

파이써을 실행하고 .py를 생략한 파일 이름을 import뒤에 입력

파이썬에서 파일이 존재하면 import가 됨

 

함수를 사용할때는 주피터 노트북에서도 함수명을 입력하면

바로 수행됨

이와 같이 모듈에서도 함수사용은 모듈명과 '.'을 붙이고

함수명을 사용하면 됨

 

클래스를 사용할때는 객체를 선언해 줘야하므로

mc = modoopython.calculator()의 형태로 객체 선언후

클래스 활용과 동일하게 사용하면 됨

 

모듈명 뒤에 붙이는 점은 하위구조로 연결한다고

이해하면 됨

모듈이 최상단이고 그 아래에 클래스와 함수가 각각 있음

 

이것은 클래스를 사용할 때도 마찬가지였음

함수를 사용(호출)하려면 '객체.함수명'을 사용해야함

 

D:\tmp를 전역경로로 사용하여 어디서든 모듈을 사용하려면

내장모듈 sys를 사용하여 전역경로로 설정할 수 있음

코드 실행은 jupyter notebook 환경에서 진행함

import sys
sys.path.append('D:\\tmp\\')

import modoopython ## D:\tmp\modoopython.py 파일이 존재함
modoopython.minus(3,2)

mc = modoopython.calculator() ##객체 선언
mc.add(3,2)

-결과 (드래그로 확인가능)

1
5

 

sys.path.append('경로') 를 입력하여

전역경로로 설정가능함

 

모듈명을 사용하지 않고 함수명만 사용할 수도  있음

import sys
sys.path.append('D:\\tmp\\')

from modoopython import minus, calculator  ## D:\tmp\modoopython.py 파일이 존재함

minus(3,2)
mc = calculator()
mc.add(3,2)

-결과 (드래그로 확인가능)

1
5

 

from '모듈이름' import '함수이름' , '클래스이름'

선언하면 모듈이름은 한번만 사용하여

함수와 클래스를 짧게 사용가능함

 

모듈을 구현하는 목적은 자동화된 틀을 만들어

지속적으로 사용하기 위함임

그럴려면 코드를 완료한 후에 테스트를 하면서

자연스럽게 클래스나 함수를 코드내 호출하게됨

#modoopython.py
class calculator():
    def add(self,input1,input2):
        print(input1+input2)
        
def minus(input1,input2):
    print(input1 - input2)


minus(3,2)
cc = calculator()
cc.add(3,2)
import sys
sys.path.append('D:\\tmp\\')

import modoopython ## D:\tmp\modoopython.py 파일이 존재함

-결과 (드래그로 확인가능)

1
5

 

모듈을 선언(import modoopython)만 했는데

함수와 클래스가 사용되는 상황이 발생함

.py(모듈)를 구현할 때 함수와 클래스가 수행되게구현했기 때문

 

메인 프로그램으로 사용되었는지 모듈로 사용되었는지

구분해주는 것이 필요함

#modoopython.py
class calculator():
    def add(self,input1,input2):
        print(input1+input2)
        
def minus(input1,input2):
    print(input1 - input2)

print(__name__)
print(__name__ == "__main__")

if __name__ == "__main__": #<<-- 구분해주는 if문
    minus(3,2)
    cc = calculator()
    cc.add(3,2)
import sys
sys.path.append('D:\\tmp\\')

import modoopython ## D:\tmp\modoopython.py 파일이 존재함

-결과 (드래그로 확인가능)

modoopython
False

 

메인프로그램으로 사용될때는

__name__이 "__main__" 이 되고

모듈로 사용될때는 __name__이 모듈명인 modoopython이 됨

 

모듈로 사용했기 때문에 __name__은 모듈명(modoopython)이 됨

그래서 __name__ == "__main__"은 False가 됨

 

 

 

modoopython.py를 메인 프로그램으로 수행되어

__name__은 "__main__" 이 됨을 print문으로 확인됨

__name__ == "__main__"이 True가 되어

클래스와 함수가 수행됨

 

태그
-------------------------------------------------------------
#python, #파이썬, #anaconda, #아나콘다, #기초, #클래스, #class, #import, #selenium, #셀레늄, #자동, #교육, #코딩교육, #coding, #chatgpt, #챗GPT, #로봇,

 

 

 

728x90
반응형