python - 有没有办法只在函数创建时定义字典?
问题描述
我想在函数中定义一个字典。我如何才能在函数创建时只定义一次字典。我试图防止在每个函数调用上创建字典。目前我定义了一个全局字典并在函数内部使用它,但是还有另一种解决方案吗?
media_types = {
1: 'New Video',
2: 'New Image',
3: 'New File',
}
def get_media_type(t):
return media_types.get(t, None)
解决方案
您可以通过在 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
推荐阅读
- office-js - 删除事件处理程序excel javascript api
- swift - 使用 Swift 为核心图像过滤器添加价值
- c# - 如何使用属性网格编辑winform UserControl的复杂属性
- c++ - 未声明的标识符 - C++
- python - 无法在 Python 中使用 Selenium 访问弹出式登录表单
- android - 如果用户的密码直接在 Azure B2C 中更改,如何在我的 xamarin.forms 应用程序中知道。我正在使用 MSAL
- git - GPG 如何仅对特定的未签名提交进行签名?
- parameters - Prolog:如何编写计算积分的谓词?
- java - @Configuration 与@Service/@Controller/@Component 相比有什么好处
- xml - 通过 XSLT 的数字标签问题