在数据结构中存储函数以进行灵活调用
使用 Python 代码时,以结构化方式存储函数以供运行时通常很有用调用。在尝试使用函数创建列表或字典时,您可能遇到了类似于问题中描述的限制:
mydict = { 'funcList1': [foo(), bar(), goo()], 'funcList2': [foo(), goo(), bar()]}
这种方法会导致立即调用函数,从而导致不正确的行为。为了解决这个问题,我们需要一个合适的数据结构,让我们能够将函数与标识符关联起来,以便以后调用。
使用字典进行函数调度
首先是Python函数-类对象,这意味着它们可以分配给变量并存储在数据结构中。要将函数存储在字典中,您应该直接将它们分配为值,确保它们是函数对象而不是调用的结果。
例如:
dispatcher = {'foo': foo, 'bar': bar}
在此字典中,键是标识符,值是对实际函数对象的引用。要调用 'foo' 函数,只需调用调度程序['foo']()。
在列表中存储多个函数
如果需要存储多个函数作为一个团体,你可以使用一个列表。然而,手动调用函数列表可能很麻烦。为了解决这个问题,您可以创建一个辅助函数来迭代列表并调用每个函数:
def fire_all(func_list): for f in func_list: f() dispatcher = {'foobar': [foo, bar], 'bazcat': [baz, cat]} fire_all(dispatcher['foobar'])
此代码将在 fire_all(dispatcher['foobar' ) 时调用 'foo' 和 'bar' 函数]) 被调用。
结论
使用字典或列表来存储函数为动态管理和调用函数提供了灵活且结构化的方法。这允许您创建可重用的组件并提高代码的可读性和可维护性。
以上是如何在Python数据结构中高效存储和调用函数?的详细内容。更多信息请关注PHP中文网其他相关文章!