有没有一种方法只能在函数创建时定义字典?

Fea*_*nor 2 python python-3.x

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

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

def get_media_type(t):
    return media_types.get(t, None)
Run Code Online (Sandbox Code Playgroud)

小智 6

您可以通过在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()
Run Code Online (Sandbox Code Playgroud)

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