파이썬 with class & object

oswaldeff·2021년 8월 1일
0
post-thumbnail

📗 function

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 & object

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된다.

사실 아직은 클래스의 장점을 명확히 모르는바이기 때문에
클래스와 함수의 장단점을 알기 위해서는 파이썬의 객체지향 프로그래밍에 대해 공부해볼 필요가 있을 것 같다.

0개의 댓글