# '__' 붙은 변수는 private 변수 이다.
----------------------------------------------------------------------------------------------
>>> class Dummy():
def __init__(self, x):
self._num = x
self.__num = x
def getNum(self):
print("_num : {}".format(self._num))
print("__num : {}".format(self.__num))
>>> d = Dummy(0)
>>> d.getNum()
_num : 0
__num : 0
>>> d._num = 1
>>> d.__num = 2 # 할당되는것 처럼 보이나 인스턴스변수에 할당한것이 아니다.
>>> d.getNum()
_num : 1
__num : 0
# 일반적인 def 선언 메소드로 setter와 getter역할을 하게 할 수 있으나, static한 클래스변수처럼 인스턴스변수를 제어 할 수는 없다.
----------------------------------------------------------------------------------------------
>>> class Dummy():
def __init__(self):
self.__num = 0
def getNum(self):
return self.__num
def setNum(self, x):
self.__num = x
>>> d = Dummy()
>>> d.setNum(9)
>>> d.getNum()
9
>>>
# getter와 setter를 정의하여 static한 클래스변수처럼 값을 제어해보자
----------------------------------------------------------------------------------------------
>>> class Dummy():
def __init__(self):
self.__num = 0
# getter getter를 setter보다 먼저 선언해야 한다.
@property
def num(self):
return self.__num
# setter setter를 getter보다 나중에 선언해야 한다.
@num.setter
def num(self, x):
self.__num = x
def printNum(self):
print("__num : {}".format(self.__num))
>>> d = Dummy()
>>> d.num = 9
>>> d.num
9
>>> d.printNum()
__num : 9
>>> d.num = 4
>>> d.num
4
>>> d.printNum()
__num : 4
>>>
# https://docs.python.org/3/library/functions.html?highlight=property#property
private선언 & setter와 getter
|
2020.02.01 19:03:23
|
2022.08.31 20:21:02
|
435
|
Aiden
Total of Attached file
0.00 Bytes of 0 files
2020.04.28
2020.03.07
2020.02.29
2020.02.16
2020.02.01
2020.02.01
2020.01.24
2020.01.18
2020.01.17
2020.01.12
2019.09.25