首页 > 解决方案 > 有没有办法只在函数创建时定义字典?

问题描述

我想在函数中定义一个字典。我如何才能在函数创建时只定义一次字典。我试图防止在每个函数调用上创建字典。目前我定义了一个全局字典并在函数内部使用它,但是还有另一种解决方案吗?

media_types = {
    1: 'New Video',
    2: 'New Image',
    3: 'New File',
}

def get_media_type(t):
    return media_types.get(t, None)

标签: pythonpython-3.x

解决方案


您可以通过在 python 中使用闭包来做到这一点

def get_media_type():
    media_types = {
        1: 'New Video',
        2: 'New Image',
        3: 'New File',
    }
    def media_type_wrapper(t):
        return media_types.get(t, None)
    return media_type_wrapper


get_media_type = get_media_type()

有关 python 中的闭包的更多信息https://www.programiz.com/python-programming/closure


推荐阅读