Python 특수 메소드, private, public 변수
__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