def _welcomekit(List):
kit = List
print(kit)
return kit
List0 = ['dev sticker set1']
List1 = ['stickers', 'mug cup']
List2 = ['dev sticker set2', 'tumbler', 'ballpoint pen']
person0 = _welcomekit(List0)
person1 = _welcomekit(List1)
person2 = _welcomekit(List2)
PS c:\Users> c:/Users/python.py
['dev sticker set1']
['stickers', 'mug cup']
['dev sticker set2', 'tumbler', 'ballpoint pen']
클래스(class)란 똑같은 무엇인가를 계속해서 만들어 낼 수 있는 설계 도면이고(과자 틀), 객체(object)란 클래스로 만든 피조물(과자 틀을 사용해 만든 과자)을 뜻한다.
-점프 투 파이썬 인용
단적인 예시로 backend에서 List의 길이를 표시해주는 방법도 있지만
api로 front에 일정개수로 협약된 object값들을 쏴준다고 할때,
경우에 따라서 전달해줄 값이 존재하지않을 경우 빈 문자열의 객체 자체로 전달해줄 수 있다.
예를들어, 위의 _welcomekit 함수에서는 함수 내부에서 kit라는 object를 생성하는데
이때 kit는 추가적인 객체생성없이 함수의 input List를 그대로 읽어들어와 내보내므로
애초에 kit가 3가지의 item들로 구성되어 있다한들 1개가 List로 들어오면 해당 1개에 대해서만
return한다.
class welcomekit:
def __init__(self):
self.kit = ['', '', '']
def _welcomekit(self, List):
for idx, item in enumerate(List):
self.kit[idx] = item
kit = self.kit
print(kit)
return kit
List0 = ['dev sticker set1']
List1 = ['stickers', 'mug cup']
List2 = ['dev sticker set2', 'tumbler', 'ballpoint pen']
person0 = welcomekit()._welcomekit(List0)
person1 = welcomekit()._welcomekit(List1)
person2 = welcomekit()._welcomekit(List2)
PS c:\Users> c:/Users/python.py
['dev sticker set1', '', '']
['stickers', 'mug cup', '']
['dev sticker set2', 'tumbler', 'ballpoint pen']
welcomekit 클래스에서는 init(self)함수를 통해 설정된 3가지의 object를 생성하고
클래스 아래의 _welcomekit 함수에서 input List를 순서대로 설정된 각각의 객체에 담아 kit라는 object에 할당한다.
만약 len(input List) < 3일 경우 (단, 여기서 input List의 length는 3이하)
for문으로 값이 할당되지 않는 self.kit 내부의 요소들은 빈 문자열로 return된다.
사실 아직은 클래스의 장점을 명확히 모르는바이기 때문에
클래스와 함수의 장단점을 알기 위해서는 파이썬의 객체지향 프로그래밍에 대해 공부해볼 필요가 있을 것 같다.