본문 바로가기

Study/신입 자라기

[Study]신입 자라기 - 33

신입 자라기 33일 차

Task Logging

시간 Task
6 : 50 기상
7 : 10 ~ 8 : 10 출근 시간
8 : 10 ~ 9 : 10 헬스
9 : 10 ~ 9 : 30 샤워
9 : 30 ~ 9 : 50 출근시간
1. 폰 망가짐
9 : 50 ~ 10 : 10 1. 짐정리
2. 티타임
10 : 10 ~ 11 : 30 1. @ 문서 작성
2. @ 신청서 작성
3. @ 문제 코드 확인 
11 : 30 ~ 12 : 45 점심 시간
1. 배민
12 : 45 ~ 18 : 00 1. 객체 인스턴스 분석 및 수정
2. 개발 방향성 피드백
3. 간식 타임
18 : 00 ~ 18 : 50 저녁 시간
18 : 50 ~ 20 : 30 1. 배운거 정리
2. Base 코드 분석
20 : 30 ~24 : 00 망가진 폰 해결하기
24 : 00 ~ 25 : 00 1. 블로그 포스팅
파이썬 zip함수를 이용해서 dictonary 만들기
d = dict(zip([’a’, ‘b’], [1, 2]))

d = {'a' : 1 , 'b' : 2}
@property 데코레이터
  • 데코레이터 함수
  • getter/setter를 필드처럼 접근하는 방법
  • 변수 앞에 '_'을 붙이는 이유 :자바처럼 private 접근 지정자가 있는 것은 아니며, '_'를 붙이는 것으로 개발자끼리 private변수라고 간주함
getter/setter
1. getter : 값을 get(받다)하는 놈
2. setter : 값을 set(정하다)해주는 놈

getter/setter 예시

# getter, setter
class Animal:
	def __init__(self):
			self._name = 'lion'

	def get_animal(self):
			return self._name

	def set_animal(self, value):
			self._name = value

# 출력
# animal = Animal()
# animal.set_animal = 'tiger'
# print(animal.get_animal()) 
'tiger'

 

  • getter/setter를 대신하는 property 데코레이터 예시
  • 가독성이 좋아지는데 개인 취향에 따라 쓰자
# @property
class Animal:
	def __init__(self):
			self._name = 'lion'

	@property
	def animal(self):
			return self._name
	
	@animal.setter
	def animal(self, value):
			self._name = value

# 출력
# a = Animal()
# a.animal = 'tiger'
# print(a.animal)
'tiger'

 

그래서 setter/getter/@property 이런 것을 왜 하냐?

  • 캡슐화 때문이다
  • 즉, 연관된 속성과 행위를 하나의 클래스로 묶고 실제 구현 내용을 외부에 노출되지 않도록 감추기 위함
  • 외부에 노출되지 않도록 *를 붙여서 private 변수로 지정했음. ex)_name)*
  • 이러한 private변수에 접근할 수 있게 getter/setter 같은 함수를 사용해 접근함

'Study > 신입 자라기' 카테고리의 다른 글

[Study] 신입 자라기 - 35  (0) 2022.03.31
[Study]신입 자라기 - 34  (0) 2022.03.30
[Study]신입 자라기 - 32  (0) 2022.03.26
[Study]신입 자라기 - 31  (0) 2022.03.25
[Study]신입 자라기 - 30  (0) 2022.03.24