본문 바로가기
파이썬

6주차, 객체지향, 절차지향, 특수메소드

by 호놀롤루 2022. 1. 26.

절차지향(구조적 프로그래밍): 데이터 구조와 그 데이터를 변화시키는 알고리즘으로 구성

 

객체지향: 객체들이 메시지를 통하여 통신함으로써 원하는 결과를 얻는다. 각 객체는 고유의

데이터와 데이터를 처리할 수 있는 메소드로 구성

 

사실 파이선은 모든 것이 객체다.

string이나 list 또한 객체다.

'asdf'.upper() 라는 함수조차 이미 선언된 메소드다.

 

특수메소드

생성자: __init__()

객체가 생선된 후 가장 먼저 호출되는 메소드

첫번째 매개변수는 self이며 이후에 매개변수 추가 가능

주로 멤버 변수의 초기화 코드로 작성

 

소멸자: __del__()

객체가 소멸될 때 호출되는 메소드

외부 자원을 사용하는 경우, 해제하는 코드를 주로 작성

self 이외의 매개변수를 받지 않음

del 객체이름 을 입력하면 삭제가능

 

정적 메소드

@staticmethod 데코레이터로 수식

인스턴스를 생성하지 않고 클래스를 이용해서 직접 호출할 수 있는 메소드

메소드 내에서 멤버 변수를 호출할 수 없고, self 매개변수도 사용하지 않는다.

 

클래스 메소드

@classmethod 데코레이터로 수식

정적 메소드와 유사하지만, 첫번째 변수로 클래스 객체(cls)가 전달되는 것이 다름

cls 매개변수 사용

 

class 클래스 이름:

    @classmethod

    def 메소드 이름(cls):

        실행문장 (클래스에서 선언한 변수 사용 가능 대신 cls.변수, 인스턴스 생성 안해도 사용 가능)

 

private, public 변수 (없음)

private 멤버는 내부에서는 접근이 가능하지만 클래스 외부에서 접근이 안되는 멤버

Public 멤버는 클래스 외부에서 접근이 가능한 멤버

파이썬은 기본적으로 모든 멤버가 public

댓글