Pythonic способ сделать импорт типа переменной switch-Statement - PullRequest
0 голосов
/ 18 января 2019

У меня есть следующий блок кода, который выглядит довольно некрасиво. Мне нужно импортировать разные вещи в зависимости от ввода пользователя. Это лучший способ сделать это, или есть рекомендуемый более питонический способ для достижения этой функциональности? (Также обратите внимание, что имя импорта не всегда просто строчная буква model_name)

    if model_name == 'Xception':
            from tensorflow.keras.applications.xception import preprocess_input, decode_predictions
    elif model_name == 'MobileNet':
        from tensorflow.keras.applications.mobilenet import preprocess_input, decode_predictions
    elif model_name == 'ResNet50':
        from tensorflow.keras.applications.resnet50 import preprocess_input, decode_predictions
    elif model_name == 'InceptionV3':
        from tensorflow.keras.applications.inception_v3 import preprocess_input, decode_predictions
    elif model_name == 'InceptionResNetV2':
        from tensorflow.keras.applications.inception_resnet_v2 import preprocess_input, decode_predictions
    elif model_name == 'DenseNet121':
        from tensorflow.keras.applications.densenet import preprocess_input, decode_predictions
    elif model_name == 'DenseNet201':
        from tensorflow.keras.applications.densenet import preprocess_input, decode_predictions
    elif model_name == 'NASNetMobile':
        from tensorflow.keras.applications.nasnet import preprocess_input, decode_predictions
    elif model_name == 'NASNetLarge':
        from tensorflow.keras.applications.nasnet import preprocess_input, decode_predictions
    else:
        from tensorflow.keras.applications.xception import preprocess_input, decode_predictions
...