글 개요
python으로 개발을 진행하다보면, class에서 python dict나 list처럼 사용하고 싶을 때가 있습니다. python의 매직메서드인 __getitem__과 __setitem__ 메서드를 이용하면 클래스를 dict or list처럼 사용할 수 있습니다.
글 본문
만약에 클래스를 이용해서 딕셔너리를 어떻게 생성을 어떻게 할까요?
class User:
def __init__(self):
self.name = {}
def get_name(self, index, key):
self.name[index] = key
def call_name(self, index):
return self.name[index]
person1 = User()
person1.get_name(0, "andy")
person1.get_name(1, "json")
person1.get_name(2, "ham")
print(person1.name)
print(person1.call_name(0))
- user class를 하나 만들고 딕셔너리에 추가하는 method를 하나 만들고 불러오는 method를 하나 만들어 줘야합니다.
- 그리고 사용하려면 클래스를 선언하여 해당 method를 이용하여 데이터를 추가해줘야 합니다.
위 방법도 개발하면 좋겠지만, python에 매직 method인 __getitem__과 __setitem__을 이용하면 조금 더 쉽게 개발할 수 있습니다.
class User:
def __init__(self):
self.name = {}
def __getitem__(self, item):
return self.name[item]
def __setitem__(self, key, value):
self.name[key] = value
person1 = User()
person1[0] = "andy"
person1[1] = "json"
person1[2] = "ham"
print(person1.name)
print(person1[0])
- User class를 선언해주고 바로 딕셔너리에 데이터를 추가할 수 있습니다. 또한 index를 이용해서 데이터를 바로 조회할 수 있습니다.
'Python' 카테고리의 다른 글
Python Decorator를 사용해서 기존함수를 변경해보자. (0) | 2022.07.24 |
---|---|
파이썬 - 패키지 (0) | 2021.10.11 |
파이썬 - 전역변수 __name__ (0) | 2021.10.11 |
파이썬 - 모듈 (0) | 2021.10.11 |
파이썬 - 다양한 함수 (0) | 2021.10.11 |
댓글