如何使用内联函数声明字典

新手上路,请多包涵

在将函数用作字典的元素之前,是否必须正式定义它?

 def my_func():
  print 'my_func'

d = {
  'function': my_func
}

我宁愿定义内联函数。我只是想输入我想做的事情,但是 python 语法的空白策略使得很难在 dict 中定义内联函数。有什么办法吗?

原文由 Matthew Taylor 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 485
2 个回答

答案似乎是没有办法在 python 中声明函数内联字典定义。感谢所有花时间做出贡献的人。

原文由 Matthew Taylor 发布,翻译遵循 CC BY-SA 3.0 许可协议

你真的需要一本字典,还是只需要 getitem 访问?

如果是后者,则使用一个类:

 >>> class Dispatch(object):
...     def funcA(self, *args):
...         print('funcA%r' % (args,))
...     def funcB(self, *args):
...         print('funcB%r' % (args,))
...     def __getitem__(self, name):
...         return getattr(self, name)
...
>>> d = Dispatch()
>>>
>>> d['funcA'](1, 2, 3)
funcA(1, 2, 3)

原文由 ekhumoro 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏