파이썬 심화(클래스)

오상윤·2022년 12월 30일
0

파이썬 심화

목록 보기
4/9

클래스

모듈

  • 함수나 변수, 클래스를 모아 놓은 파일이다.
  • 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬파일
  • 모듈의 종류
    • 표준모듈 : 파이썬과 함께 따라오는 모듈
    • 사용자 생성 모듈 : 프로그래머가 직접 작성한 모듈
    • 서드 파티 모듈 : 파이썬 재단도 프로그래머(본인)도 아닌 다른 프로그래머 또는 업체에서 제공한 모듈
  • 외부 모듈을 사용할 수 있도록 하는 방법은 import파일명
  • 확장자는 생략하고 파일에 있는 변수나 함수는 파일명.변수 또는 파일명.함수()로 호출
  • import는 다른 모듈 내의 코드에 대한 접근을 가능하게 하는 것으로, 변수, 함수, 클래스 등이 포함된다
    • import 모듈
    • from 모듈 import 함수이름1, 함수이름2

패키지

  • 모듈들을 모아놓은 디렉토리
  • 패키지에서 특정한 모듈을 가져올때는 from ** improt **

객체와 클래스

  • object는 생성될 때 마다 새로운 메모리 공간에 값을 생성하기 때문에 엄밀히 말하면 다른 값이다.
  • 객체이름.변수이름 = 값 을 입력함으로써 객체에 변수를 추가할 수 있다.
  • self : 메소드를 클래스 내부에 선언할 때는 첫 번째 매개변수는 반드시 현재 클래스의 객체가 되어야 한다.
# class의 이름 정의
class human:
    # class가 처음 선언될 때 실행될 method
    def __init__(self, height, age):
        # class 변수
        self.height = height
        self.age = age
        # class 메소드
    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 : 객체이름
    # reference name : 인스탄스 이름
    # 차라는 클래스를 이용하여 내 차 생성
    mycar = Car()
    # 객체명.속성
    print(mycar.color)
    # 객체명.메소드명()
    mycar.backward()
profile
가보자가보자~

0개의 댓글