본문 바로가기
프로그래밍/PY

[PY] getattr 활용 가이드

by webcodur 2024. 5. 8.
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