클래스
모듈
- 함수나 변수, 클래스를 모아 놓은 파일이다.
- 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬파일
- 모듈의 종류
- 표준모듈 : 파이썬과 함께 따라오는 모듈
- 사용자 생성 모듈 : 프로그래머가 직접 작성한 모듈
- 서드 파티 모듈 : 파이썬 재단도 프로그래머(본인)도 아닌 다른 프로그래머 또는 업체에서 제공한 모듈
- 외부 모듈을 사용할 수 있도록 하는 방법은 import파일명
- 확장자는 생략하고 파일에 있는 변수나 함수는 파일명.변수 또는 파일명.함수()로 호출
- import는 다른 모듈 내의 코드에 대한 접근을 가능하게 하는 것으로, 변수, 함수, 클래스 등이 포함된다
- import 모듈
- from 모듈 import 함수이름1, 함수이름2
패키지
- 모듈들을 모아놓은 디렉토리
- 패키지에서 특정한 모듈을 가져올때는 from ** improt **
객체와 클래스
- object는 생성될 때 마다 새로운 메모리 공간에 값을 생성하기 때문에 엄밀히 말하면 다른 값이다.
- 객체이름.변수이름 = 값 을 입력함으로써 객체에 변수를 추가할 수 있다.
- self : 메소드를 클래스 내부에 선언할 때는 첫 번째 매개변수는 반드시 현재 클래스의 객체가 되어야 한다.
class human:
def __init__(self, height, age):
self.height = height
self.age = age
def how_old(self):
print(self.age, "살 입니다.")
def how_tall(self):
print(self.height, "cm 입니다.")
절차지향
- 구조적 프로그래밍
- 데이터 구조와 그 데이터를 변화시키는 알고리즘으로 구성
객체지향
- 객체들이 메시지를 통하여 통신함으로써 원하는 결과를 얻음
- 각 객체는 고유의 데이터와 데이터를 처리할 수 있는 메소드로 구성
특수 메소드
생성자 : init()
- 객체가 생성된 후 가장 먼저 호출되는 메소드
- 첫번째 매개변수는 self이며 이후에 매개변수 추가 가능
- 주로 맴버 변수의 초기화 코드로 작성
소멸자 : del()
- 객체가 소멸될 때 호출되는 메소드
- 외부 자원을 사용하는 경우 해제하는 코드를 주로 작성
- self 이외의 매개변수를 받지 않음
class human:
def __init__(self):
self.height = 3
self.age = 3
def __del__(self):
print("삭제")
### 정적 메소드
- @staticmethod 데코레이터로 수식
- 인스턴스를 생성하지 않고 클래스를 이용해서 직접 호출할 수 있는 메소드
- 메소드 내에서 맴버 변수를 호출할 수 없고, self매개변수도 사용하지 않습니다.
>
```python
class human:
def __init__(self):
self.height = 3
self.age = 3
@staticmethod
def addition(x,y):
return x+y
클래스 메소드
- @classmethod 데코레이터로 수식
- 정적 메소드와 유사하지만, 첫 번째 변수로 클래스 객체가 전달되는 것이 다름
class student:
count = 0
@classmethod
def cmethod(cls):
print("클래스 메소드")
print(cls.count)
@staticmethod
def smethod():
print("정적 메소드")
student.cmethod()
student.smethod()
class Car:
def __init__(self):
self.color = "red"
self.wheel_size = 18
self.displacement = 2000
def forward(self):
print('전진')
def backward(self):
print('후진')
def turn_left(self):
print('좌회전')
def turn_right(self):
print('우회전')
if __name__ == "__main__":
mycar = Car()
print(mycar.color)
mycar.backward()