在将函数用作字典的元素之前,是否必须正式定义它?
def my_func():
print 'my_func'
d = {
'function': my_func
}
我宁愿定义内联函数。我只是想输入我想做的事情,但是 python 语法的空白策略使得很难在 dict 中定义内联函数。有什么办法吗?
原文由 Matthew Taylor 发布,翻译遵循 CC BY-SA 4.0 许可协议
在将函数用作字典的元素之前,是否必须正式定义它?
def my_func():
print 'my_func'
d = {
'function': my_func
}
我宁愿定义内联函数。我只是想输入我想做的事情,但是 python 语法的空白策略使得很难在 dict 中定义内联函数。有什么办法吗?
原文由 Matthew Taylor 发布,翻译遵循 CC BY-SA 4.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 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答893 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
答案似乎是没有办法在 python 中声明函数内联字典定义。感谢所有花时间做出贡献的人。