在Python3.x中,如何为另一个纯传递函数创建一个简单的代理函数?

2024-05-29 05:00:04 发布

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

在python3.x中,我想为一个特定的已知函数proxy创建一个代理函数,并保证所有传递的参数都被“转发”,就像直接传递给proxiedFunc一样。在

# Pseudo-Python code
def _proxy(???generic_parameters???):
        return proxiedFunc(???arguments???)

我所说的“纯传递”(pure pass-through)的意思是,代理方法的实现不应受到对代理方法的(非)兼容更改的影响,前提是函数名称不变(可靠原则)。显然,如果代理方法被不兼容地更改(即,我不打算让proxy成为适配器,则需要修改\u proxy的调用者。在


Tags: 方法函数代理参数returnpuredefcode
1条回答
网友
1楼 · 发布于 2024-05-29 05:00:04

在函数定义中使用“anything”的通用方法是使用*args, **kwargs。在

在调用另一个函数时,传递这些参数也使用相同的语法。在

def _proxy(*args, **kwargs):
        return proxiedFunc(*args, **kwargs)

单个*(例如*args)捕获位置参数,而double(例如**kwargs)捕获关键字参数。在

args和{}是为这些参数容器指定的名称。按照惯例,“any positional args”参数的名称是args或{}(其类型是tuple),而“any keyword args”参数的名称是kwargs或{}(其类型是dict)。在

相关问题 更多 >

    热门问题