차밍이
[Python] getattr() 를 사용해서 간결하게 코드 작성하기, 예시 및 장점 본문
목차
getattr() 구문
getattr(object, attribute, default)
[매개변수]
object : 필수. 객체.
attribute : 필수. 값을 얻을 속성명.
default : 선택. 속성이 없는 경우 반환할 값.
getattr() 함수의 정의
gattattr(object, name) 으로 object안의 메소드(name)을 호출한다.
object 내부의 name이라는 멤버를 반환한다.
사실 정의만 보면 잘 이해가 되지 않는다.
조금 더 쉽게 애기하자면 문자열로 객체의 속성값이나 메소드를 사용할 수 있다.
Example
예제를 보면 쉽게 이해할 수 있다.
class Animal:
leg = 4
size = "Big"
def enemy(self):
print("컹컹컹!")
def friend(self):
print("왕왕조왕")
animal = Animal()
getattr(animal, 'enemy')()
>>> "컹컹컹!"
getattr(animal, 'leg')
>>> 4
getattr() 활용 및 장점
장점 1
.
을 사용해서 불러오면 되지만, 잘 사용하면 활용성이 높다.
str
문자열을 사용해서 불러올 수 있기 때문에
특정 이름에 따라서 메소드를 가져올 때 활용하면 좋다.
class Animal:
leg = 4
size = "Big"
def enemy(self):
print("컹컹컹!")
def friend(self):
print("왕왕조왕")
def greeting(visitor):
animal = Animal()
if visitor == "enemy":
animal.enemy()
elif visitor == "friend":
animal.friend()
def greeting2(visitor):
animal = Animal()
getattr(animal, visitor)
함수 greeting
과 함수 greeting2
를 비교하면 왜 getattr
를 사용하는지 알기 쉽다.
enemy
와 friend
라는 두 개의 함수만 있어서 그렇지 더 많은 선택지와 메소드가 있다면 훨씬 활용도가 높다.
길고 긴 if 문을 줄이고 간결하게 코드를 작성할 수 있으며,
알아보기에도 훨씬 좋다.
장점 2
해당 속성값이 없는 경우 .
을 사용하면 오류가 발생되지만,
getattr
를 사용하면 default
값을 설정할 수 있어서 오류가 발생되지 않고 잘 진행되게 만들 수 있다.
속성과 관련된 다른 함수들
delattr() : 속성 제거
getattr() : 속성값 가져오기
hasattr() : 속성 유무 확인
setattr() : 속성값 설정
[Python] 객체에 속성 관련 함수들 hasattr, delattr, setattr, getattr
'파이썬 > 기본 문법 정리' 카테고리의 다른 글
[Python] 리스트 요소 곱하기, 배열 원소들끼리 곱하기 (1) | 2022.02.27 |
---|---|
[Python] eval() / exec() 함수로 문자열을 파이썬 코드로 실행하기 (1) | 2022.02.26 |
[Python] 객체에 속성 관련 함수들 hasattr, delattr, setattr, getattr (1) | 2022.02.26 |
[Python] reduce 함수 사용 방법 (1) | 2022.02.25 |
[Python] 파일명 바꾸기, 여러 파일 한번에 변경 - os.rename (1) | 2022.02.24 |
[Python] 파일 확장자 구하기, 확장자로 나누기 - os.path.splitext (1) | 2022.02.23 |
[Pandas] 판다스 기초 #2 - 데이터 구간별 범주화 pd.cut (0) | 2021.05.30 |
[Pandas] 판다스 기초 #1 자료구조와 Attribute - index, columns, rename (0) | 2021.05.29 |