파이썬 - 2. getattr

최창우·2023년 1월 12일

python

목록 보기
3/4
post-thumbnail

📕 getattr 이해

getattr() 함수

  • 정의 : object의 attribute를 호출한다.
  • 매개변수 : object, attribute, default
    - object : 대상
    - attribute : 속성 - string 사용
    - default : 속성값 기입안했을때 default 값
  • 파이썬에 내장된 함수인 Built-in Functions 이기때문에 import 할 필요없다.

📖 사용예

import numpy as np

lst = [1,2,3,4]

print(getattr(np,'sum')(lst))
print(getattr(np,'average')(lst))
print(getattr(np,'max')(lst))
print(getattr(np,'min')(lst))

>> 10 
>> 2.5
>> 4
>> 1

📕 사용하는 아주 중요한 이유

코드를 매우 간소화 시킬 수 있음

  • 왜냐하면, attribute에 지정되는 값이 문자열이기 때문이다.
  • 문자열로 attribute를 불러올 수 있다는 점은 아주 큰 역할을 함

📖 사용예

1. 기본코드 ( getattr 미사용 )

# model 들이 여러개 정의된 models.py를 import
import src.models as M

# model에 구현된 모델을 입력으로 주어진 이름에 맞춰 반환
def build_neural_network(input_model_name):
  if input_model_name == 'mobilenet':
    model = M.mobilenet()
  elif input_model_name == 'vgg16':
    model = M.vgg16()
  elif input_model_name == 'vgg19':
    model = M.vgg19()
  elif input_model_name == 'googlenet':
    model = M.googlenet()
  elif input_model_name == 'resnet':
    model = M.resnet()
  return model

2. getattr 사용

# model 들이 여러개 정의된 models.py를 import
import src.models as M

# model에 구현된 모델을 입력으로 주어진 이름에 맞춰 반환
def build_neural_network(input_model_name):
  model = getattr(M,input_model_name)
  return model

📚 Reference

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=siniphia&logNo=221796316521
https://chancoding.tistory.com/188

profile
인공지능 4년차 개발자입니다.

0개의 댓글