Python access member with string
2021. 12. 10. 13:38ㆍProgramming/Python
- 목차
반응형
Python class의 맴버에 값을 설정해야 할 때가 있다. 그런데, member가 너무 많은 경우 일일이 값들을 set, get 하는 코드를 작성하기 힘들 수 있습니다.
이런 경우 매우 손쉽게 string 배열을 통해 값을 설정하는 법을 알려드리겠습니다.
class 정의
아래와 같이 3개의 member attribute를 지니고 있는 class가 있다고 합시다.
class Item:
def __init__(self):
self.key = None
self.cat = None
self.file = None
일반적인 값 설정 방법
위 class에 값을 설정하는 일반적인 방법은 다음과 같습니다.
item = Item()
item.key = 1
item.cat = 3
item.file = 'filename'
위의 경우는 단지 3개의 member만 존재하여 설정이 어렵지 않습니다만, member가 수십개가 될 경우 일일이 이를 나열하여 코딩하게되면 버거로운 일이 아닐 수 없습니다.
setattr 사용
이런 경우 setattr을 사용해 값을 설정할 수 있습니다.
여러 field들이 있고 이에 설정할 값들을 list로 정의합니다.
attrs = [
('key', 20), ('cat', 5), ('file', 'file1.txt)
]
for member, value in attrs:
setattr(item, member, value)
getattr
반대로 값을 가져오고자 하는 경우 getattr을 사용할 수 있습니다.
for member, value in attrs:
val = getattr(item, member)
반응형
'Programming > Python' 카테고리의 다른 글
[Python] Lambda expression (람다 표현식) (0) | 2021.12.13 |
---|---|
Python access member as string (0) | 2021.12.10 |
openpyxl sheet (0) | 2021.12.10 |
openpyxl sheet (0) | 2021.12.10 |
[Python] dictionary 응용 (0) | 2021.09.27 |