[Week2] (파이썬 프로그래밍) 07. Class

jjooki-entist·2022년 9월 1일
0

💡 Class : OOP에서 구현하려는 개념을 추상화한 코드 템플릿.

  • Class란 구현하려는 개념을 객체(object)의 형태로 표현한 것이다.
  • 구현하려는 대상의 특성(Attribute)을 Class variable로, 대상이 수행해야 하는 일(Instance)을 Class method로 구현해야 한다.
  • Constructor(생성자)를 통해서 객체의 틀을 정의할 수 있습니다.
# Python Class example
class Human(superclass):  # 상속을 받고 싶을 때, 상속받을 클래스 이름을 파라미터로 지정.
	def __init__(self, name, weight): # Constructor
		self.name = name
		self.weight = weight
		...
	
	def gain_weight(self, a, b):
		tmp_weight = self.weight + a
		<statement>
		...
		return tmp_weight

>>> object1 = Human("Kim", 70)  # class_name() : __init__ method call
>>> object1.name
>>> "Kim"
>>> object1.gain_weight(5, 7)
>>> 75
  • 생성자는 __init__() 함수를 이용하여 구현합니다.
  • 구현되는 객체는 self 라는 자체 변수를 가집니다. self는 말 그대로 객체(class) 자기 자신을 지칭합니다.
  • self 변수를 통해서 모든 객체는 자기 자신을 구분할 수 있습니다.
  • Class method도 self 변수를 이용하여 객체를 구분합니다.
  • self는 Class variable이기 때문에 하나의 Class내에서 통용됩니다.
  • Class도 역시 재사용성을 고려하여 디자인되어야 합니다.
  • Class로 구현할 때 제일 중요한 포인트는 “어떤 특성과 어떤 기능을 구현할 것인가" 입니다.

ML/DL Project 실무에서의 활용.

Key Points

  1. 구현하려는 대상의 특성과 기능을 명확하게 정의한다.
  2. OOP의 개념을 명확하게 하여, 기능별 구현 사항을 명확하게 정의한다. (명세 사항)
  3. 단순한 형태로 구현해도 되는 것을 클래스로 구현하여 복잡도만 높이는 것인지 아닌지 잘 판단해서 활용할 필요가 있다.
profile
데이터 사이언티스트를 꿈꾸는 3년차 제품총괄입니다.

0개의 댓글