뮤트 개발일지

Python 특수 메소드, private, public 변수 본문

카테고리 없음

Python 특수 메소드, private, public 변수

박뮤트 2021. 12. 20. 17:52

__init__ (): 생성자. 객체가 생성된 후 가장 먼저 호출되는 메소드. 첫 번째 매개변수는 self이며 이후에 매개변수 추가 가능하다.

__del__(): 소멸자. 객체가 소멸될 때 호출되는 메소드. self 이외의 매개변수는 받지 않는다.

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

 

@staticmethod: 정적 메소드. 인스턴스를 생성하지 않고 클래스를 이용해서 직접 호출할 수 있다. 메소드 내에서 멤버 변수를 호출할 수 없고, self 매개변수도 사용하지 않는다.

예)

class 클래스이름:

    @staticmethod

    def 메소드이름(매개변수):

        코드

 

@classmethod: 클래스 메소드. 정적 메소드와 유사. 그러나 첫 번째 변수로 클래스 객체가 전달되는 것이 다르다. 

예)

class 클래스이름:

    @classmethod

    def 메소드이름(cls):

        코드


private, public 변수

private 변수: 내부에서는 접근가능 하지만 클래스 외부에서는 접근이 안됨

public 변수: 클래스 외부에서 접근 가능

*파이썬의 경우 기본적으로 모든 멤버는 public

 

변수 이름 앞에 __를 붙이면 숨길 수 있고 setter을 통해 변경, getter을 통해 값 불러오기가 가능하다.

예)

class name:

    def __init__(self):

        self.__x = 1

 

    def x_getter(self):

        return self.__x

 

    def x_setter(self, value):

        self.__x = value