用Pythonic方式进行变量开关语句类型导入

时间:2019-01-17 22:31:57

标签: python-3.x python-import

我有以下看起来很丑陋的代码块。我需要根据用户输入导入其他内容。这是执行此操作的最佳方法,还是建议使用更多的pythonic方法来实现此功能? (还要注意,导入名称并不总是只是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

0 个答案:

没有答案