728x90
반응형
목차
1. 개념
객체의 속성 값을 동적으로 액세스할 수 있는 내장 함수. 주로 변수명을 문자열로 받아 해당 속성의 값을 반환한다.
getattr(object, name[, default])
- object: 대상 객체
- name: 타겟 속성명 (문자열로 지정)
- default: **name**이 객체에 존재하지 않을 경우 반환할 기본값이다. (선택 파라미터)
- 속성도, default 값도 제공되지 않는 경우 AttributeError 발생
2. getattr 사용 예제
class Person:
name = "John"
age = 30
# 객체 생성
p = Person()
print(getattr(p, 'name')) # 출력: John
print(getattr(p, 'age')) # 출력: 30
print(getattr(p, 'height', 175)) # 출력: 175 (존재하지 않는 속성은 기본값)
3. getattr 미사용 예제
getattr 함수가 없다면, 파이썬에서 동적으로 객체의 속성 값을 액세스하려면 반복문과 조건문을 사용해야 한다.
class Person:
name = "John"
age = 30
# 객체 생성
p = Person()
# 속성 접근을 위한 함수 정의
def get_attribute(obj, attr_name, default=None):
if hasattr(obj, attr_name):
return getattr(obj, attr_name)
else:
return default
# name 속성 값 가져오기
if hasattr(p, 'name'):
print(p.name)
else:
print('속성이 존재하지 않습니다.')
# age 속성 값 가져오기
if hasattr(p, 'age'):
print(p.age)
else:
print('속성이 존재하지 않습니다.')
# 존재하지 않는 속성에 대해 기본값 출력
if hasattr(p, 'height'):
print(p.height)
else:
print(175) # 기본값 175 출력
반응형
'프로그래밍 > PY' 카테고리의 다른 글
[PY] isinstance 활용 가이드 (0) | 2024.05.08 |
---|---|
[PY] importlib.import_module 활용 가이드 (2) | 2024.05.08 |