gpt4 book ai didi

python - 将 functools.partial 与部分参数一起使用

转载 作者:行者123 更新时间:2023-12-01 02:51:44 26 4
gpt4 key购买 nike

尝试部分操作时,我观察到以下行为:

首先,我定义了一个函数foo它需要 2 个非关键字参数:

>>> def foo(salutation, name):
... print(salutation, name)

然后,我使用partial来创建一个更高阶的包装器。

>>> from functools import partial 
>>> f = partial(foo, name='Coldspeed')

然后,这样调用它:

>>> f('Hey')

这给了我Hey Coldspeed这是预料之中的。接下来,我尝试申请partial isinstance :

>>> f = partial(isinstance, classinfo=str)
>>> f('hello')

但这给了我一个错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: isinstance() takes no keyword arguments

我试过classinfo作为参数名称,因为这是文档中指定的(上面链接)。实际定义似乎没有名为 classinfo 的第二个参数。正如文档可能另有说明的那样。

现在,我如何使用第二个参数创建一个部分函数,​​而不必强制指定参数名称?我绝对做不到f = partial(isinstance, str)因为str将被视为第一个参数,而不是第二个。如果可能的话,想找到一种不使用lambda来做到这一点的方法也有功能。

最佳答案

不幸的是,这不是functools.partial支持。您需要编写自己的支持它的版本,或者在某个第三方库中找到一个版本。

关于python - 将 functools.partial 与部分参数一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44686646/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com