nullstack-developer / python_clean_code

0 stars 0 forks source link

p59 `__getattr__` #3

Closed castedice closed 2 years ago

castedice commented 2 years ago

getattr의 추가적인 사용법

사용법

yhson-onepredict commented 2 years ago

좋아요

jangsc0000 commented 2 years ago
import my_models as M

# my_model에 구현된 모델을 주어진 이름에 맞춰 반환
def build_neural_network(model_name):
  if model_name == 'googlenet':
    model = M.googlenet(args)
  elif model_name == 'vgg':
    model = M.vgg(args)
  elif model_name == 'resnet':
    model = M.resnet(args)
  ..
  ..
  return model

getattr를 사용하여 위의 긴 코드를 아래와 같이 짧게 변경 가능

import my_models as M
def build_neural_network(model_name):
  return getattr(M, model_name)(args)