在python设计asp中使用函数指针

2024-09-24 08:38:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个例子,其中一个class A有一个名为foo1()的函数,我需要对它的当前流进行一些修改,有时在相关的时候

我想从文件中导入这个类,使foo能够获得两个函数指针作为可选参数,这些参数将决定我们是否要执行不同的附加流

例如,使foo的原始参数(...)与新函数指针foo(...,func_pointer1 = None,func_pointer2=None)一样长

只是想澄清一下,func\u pointer1在流的任何情况下都会保存一个要启动的函数,func\u pointer2的设计是在流的末尾添加更多的代码来处理

我认为这种传递两个函数指针的方法并不常见,我还需要传递每个函数**kwargs参数。 有人知道这听起来是否合适,或者你有更合理的解决方案吗


Tags: 方法函数代码none参数foo情况class
2条回答

你所说的“函数指针”实际上只是python中的函数。函数和其他任何东西一样都是对象,所以您也可以随意传递它们。在标准库中,它用于max(key=function)或functools中的partial。所以你做的完全没问题

如果不想显式传递*args和**kwargs,可以使用lambda或partial

也许您可以将带有参数的函数作为两个列表传递给另一个函数,然后告诉下一个函数如何管理这些列表

我不得不做类似的事情,我做到了:

def foo(*args):
    for item in in args:
        return execute(*item)

def execute(func, *args):
    return func(args)

相关问题 更多 >