모듈이란 함수나 변수 또는 클래스를 모아 놓은 파이썬 파일이다. 모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고도 할 수 있다. 파이썬에 내장된 내장 모듈을 사용할 수도 있고 다른 사람들이 이미 만들어 놓은 모듈을 사용할 수도 있고 내가 직접 만들어서 사용할 수도 있다.
# 불러오는 방법
import operator
# 다음처럼 줄인표현으로 간단하게 불러올수도 있다.
import operator as op
모듈 이름 | 설명 |
---|---|
sys | 파이썬 시스템과 대화를 가능하게 합니다. exit() - 종료. argv - 명령어 라인 인수에 접근합니다. path - 시스템의 경로에 접근합니다. ps1 - '>>>' 파이썬의 프롬프트를 변경합니다. |
string | 문자열을 처리할 수 있도록 해준다. atoi/f/l - 문자열을 integer/float/long 로 변환합니다. find - 하부문자열을 탐색합니다. split - '단어'의 부분을 이용합니다. upper/lower - 대소문자 변환 |
math | 많은 수학적 함수에 접근하도록 해준다. sin,cos 등등 - 삼각 함수 log,log10 - 자연로그 그리고 상용로그 ceil,floor - 상한값과 하한값 pi, e - 자연 상수 |
이외에도 operator
, os
등등 있지만 암기하는 것 보다 그때그때 필요한 기능을 인터넷에 검색하며 사용하도록 하자.
먼저 .py 파일을 만들어야 한다.
# module1.py
def add(n1,n2):
return n1+n2
만든 모듈 불러오기
# module1 모듈 불러오기
import module1
# 사용시 모듈이름.모듈내함수 방식으로 사용한다.
result = module1.add(24, 5)
print(result)
# 출력
29
# module1 모듈에서 특정 기능만 불러오기
from module1 import add
# 이 경우 모듈이름을 안붙여도 된다.
result = add(24, 5)
print(result)
# 출력
29
파이썬은 객체지향 프로그래밍 언어로 객체는 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며 값을 저장 할 변수와 작업을 수행 할 메소드를 서로 연관된 것들끼리 묶어서 만든 것을 객체라고 할 수 있다.
크게 보면 변수와 함수 와 같은 기능이 모여 객체를 만들고, 여러 객체를 모아놓은 것을 모듈이라 볼 수 있다.
다음과 같은 예시로 객체를 표현해 볼 수 있다.
파이썬에서 객체를 class 키워드로 만들 수 있다.
클래스 예시
## 자동차를 의미하는 car라는 클래스를 정의
class Car():
## 생성자, 속성을 의미함.
def __init__(self, color, length)
self.color = color
self.length = length
## 기능 1
def go_front(self):
print("go_front")
## 기능 2
def go_back(self):
print("go_back")
## 객체 생성 => 클래스이름(필요한 생성자 내용 정의)
car1 = Car("red",240)
car2 = Car("blue",180)
class person():
# 클래스 변수, 클래스 내에서 선언한 변수
# 클래스를 사용하는 모두에게 공용으로 사용되는 변수이다. 클래스 변수는 클래스 내외부에서 "클래스명.변수명" 으로 엑세스 할 수 있다.
count = 0
# Initializer(생성자), Initializer는 클래스로부터 객체를 만들 때, 인스턴스 변수를 초기화하거나 객체의 초기상태를 만들기 위한 문장들을 실행하는 곳이다.
def __init__(self,H,W):
#인스턴스 변수, 클래스 정의에서 메서드 안에서 사용되면서 "self.변수명"처럼 사용되는 변수를 인스턴스 변수(instance variable)라 하는데, 이는 각 객체별로 서로 다른 값을 갖는 변수이다
self.weight = W
self.height = H
person.count += 1
#인스턴스 메소드,인스턴스 변수에 엑세스할 수 있도록 메서드의 첫번째 파라미터에 항상 객체 자신을 의미하는 "self"라는 파라미터를 갖는다. 인스턴스 메서드는 여러 파라미터를 가질 수 있지만, 첫번째 파라미터는 항상 self 를 갖는다.
def BMI(self):
bmi = (self.weight)/(self.height*0.01)**2
print(f'Your BMI is : {bmi}')
# 정적 메소드, self 파라미터를 갖지 않고 인스턴스 변수에 엑세스할 수 없다. 따라서, 정적 메서드는 보통 객체 필드와 독립적이지만 로직상 클래스내에 포함되는 메서드에 사용된다.
def greating(name):
print(f'nice to see you, {name}')
# 클래스 메소드, cls 라는 클래스를 의미하는 파라미터를 전달받는다.클래스 메서드는 이렇게 전달받은 cls 파라미터를 통해 클래스 변수 등을 엑세스할 수 있다.
def count_person(cls):
print(f'def call count : {cls.count}')
Sam = person(168,46)
jack = person(189,72)
Sam.BMI()
person.greating('paul')
person.count_person(person)
# 출력
Your BMI is : 16.298185941043087
nice to see you, paul
def call count : 2