goodthings4me.tistory.com
■ 파이썬의 내장 함수에 property가 있으며, 클래스 변수를 속성으로 선언하고 메소드를 get, set 인자로 받아 property 객체를 생성하고, getter, setter 기능을 수행토록 한다.
class Natural:
def __init__(self, n):
self.set_n(n) # 아래의 setn 메서드 호출
def get_n(self): # getter
return self.__n
def set_n(self, n): # setter
if n < 1:
self.__n = 1
else:
self.__n = n
def main():
n1 = Natural(1)
n2 = Natural(2)
n3 = Natural(3)
n1.set_n(n2.get_n() + n3.get_n())
print(n1.get_n()) # 5
main()
# 위 코드를 property를 적용하여 설정하면,
class Natural:
def __init__(self, n):
self.set_n(n)
def get_n(self): # getter
return self.__n
def set_n(self, n): # setter
if n < 1:
self.__n = 1
else:
self.__n = n
n = property(get_n, set_n) # 프로퍼티(property) 객체 생성 후 n에 할당
def main():
n1 = Natural(1)
n2 = Natural(2)
n3 = Natural(3)
n1.n = n2.n + n3.n
print(n1.n)
num = Natural(7)
print(num.n) # 7
num.n = 20
print(num.n) # 20
main()
# n = property(get_n, set_n)의 의미는
속성(변수) n의 값을 '참조'하는 경우에는 get_n을 호출해서 반환되는 값을 전달하겠다.
속성(변수) n의 값을 '저장'하는 경우에는 set_n을 호출해서 그 값을 전달하겠다.
# num.n = 20 의 경우 num.set_n(20)과 같으며
# num.n은 num.get_n()과 같음
# 위 코드에서는 property 객체를 생성하면서 get_n과 set_n 메서드를 등록(지정)하는 방식이다.
# 위와 동일한 기능을 수행하도록 데코레이터를 사용하여 프로퍼티를 지정할 수 있다.
class Natural:
def __init__(self, n):
self.n = n # 프로퍼티(property) n을 통해 접근
@property
def n(self): # getter 동작
return self.__n
@n.setter
def n(self, n): # setter 동작
if n < 1:
self.__n = 1
else:
self.__n = n
def main():
n1 = Natural(1)
n2 = Natural(2)
n3 = Natural(3)
n1.n = n2.n + n3.n
print(n1.n)
num = Natural(7)
print(num.n) # 7
num.n = 20
print(num.n) # 20
main()
# getter 동작 부분의 아래 코드와 같으며, property 객체를 생성하면서 이어서 등장하는 메서드를 게터(getter)로 지정하고, 그 메서드명에 생성된 property 객체 저장한다는 의미이다. (파이썬에서는 메서드 이름도 변수이기 때문에 메서드명에 다른 값을 저장할 수 있다.)
def n(self):
return self.__n
n = property(n)
# setter 동작 부분 또한, property 객체를 이어서 등장하는 메서드를 대상으로 세터(setter)로 지정하고, 그 메서드명에 생성된 property 객체 저장한다는 의미이다.
[참고 자료] 윤성우의 열혈파이썬 중급편
블로그 인기글
Windows 10 탐색기 느려지는 증상과 해결하는 방법
잘 작동하던 Windows 10 탐색기가 갑자기 느려지는 증상이 발생했을 때 어떻게 조치를 하는지 구글에서 찾아보니 많은 해결책들이 있었으나 어떤 것이 정확한 해결책인지는 알 수가 없었다. 그래서 해결방법이라고 제시한 것들을 정리해 보았다. 윈도우 탐색기가 느려지는 증상 해결 방법 어느 순간부터 응용프로그램(VS Code 등)에서 폴더 열기나 파일 불러오기를 했을 때 검색 팝업창이 안 뜨거나 열리는 시간이 엄청 느려지는 증상과, 더불어서 탐색기도 실행이 많이 느려지는 증상이 있었다. 기존에 사용하던 VS Code에 openpyxl 설치 후 실행이 느려지는 증상이 발생하더니 윈도우10 탐색기도 느려져서 사용할 수가 없었다. 노트북에 OS(Windows10)를 설치한지 1년이 다 되어가긴 했지만, 1개월 전..
goodthings4me.tistory.com
[국세청] 현금영수증가맹점으로 가입바랍니다. 메시지 해결방법(개인사업자)
▶ 현금영수증 가맹점 가입 메시지를 받고... 온라인 쇼핑몰 사업을 시작하려고 사업자등록증을 발급받고 난 후 얼마 안 있어서 국세청으로부터 어느 시점까지 '현금영수증 가맹점'으로 가입하라는 문자메시지가 받았었다. 그 메시지 기한이 오늘 도래했는데, 인터넷에서 찾아보니 홈택스에서 현금영수증 발급 사업자 신청을 할 수가 있었다. [관련내용] 홈>국세정책/제도>전자(세금)계산서/현금영수증/신용카드>현금영수증∙신용카드>가맹점가입 ▶ 홈택스 사이트에서 신청하는 절차는 다음과 같다. 우선, 홈택스에 로그인을 해야 합니다. 세상이 좋아져서 공인인증서 없이도 손쉽게 간편인증 로그인이 가능하다. 여러 인증방법 중 카카오톡 인증이 가장 편리한 거 같다. 간편인증 로그인 후 상단 '조회/발급' 탭 클릭 후 '현금영수증>현금..
goodthings4me.tistory.com
유튜브 영상 등의 URL 주소를 QR코드로 만들기
네이버 QR코드, makeQR, MUST QRcode, 무료 온라인 QRCode 생성기 등의 웹사이트에서 유튜브 영상 등의 URL을 입력하여 QR코드를 만들 수 있다. QR코드를 생성할 수 있는 사이트와 프로그램 URL 주소를 붙여넣기 한 후 "QR 코드 생성" 버튼을 클릭하면 큐알코드가 이미지로 생성되고, 다운로드도 할 수 있는 사이트 https://truedoum.com/useful/qrcode/ # 유튜브에서 동영상 URL을 복사하는 방법 유튜브에서 QR코드를 만들 동영상을 검색한다. 해당 동영상을 클릭한다. 동영상 위에서 마우스 우클릭 후 나오는 팝업창에서 “동영상 URL 복사”를 클릭하거나 영상 하단의 “공유”를 클릭하여 나온 창에서 URL를 복사한다. 아래의 웹사이트 중 하나를 선택한 후 복사..
goodthings4me.tistory.com
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
[python] 파이썬 데코레이터 (Decorator) (0) | 2020.09.16 |
---|---|
[python] 파이썬 중첩함수(Nested Function)와 클로저(Closure) (0) | 2020.09.15 |
[python] 파이썬 __slots__의 효과 (0) | 2020.09.14 |
[python] 파이썬의 정보은닉(Information Hiding)과 __dict__ 메서드에 대해 (0) | 2020.09.13 |
[python] 파이썬 __str__ 메서드에 대해 (0) | 2020.09.13 |
댓글