gpt4 book ai didi

python - 卡住函数参数

转载 作者:行者123 更新时间:2023-12-01 04:17:01 24 4
gpt4 key购买 nike

我正在尝试编写一个类,它提供输入函数的功能,但会记住上次调用的参数,并且只会像字典一样更新它们。到目前为止我已经做到了,但我很想知道是否有更好的方法:

class freezefunc:
def __init__(self, func, **funcargs):
self.func = func
self.funcargs = {}

def call(self, **kwargs):
self.funcargs.update(kwargs)
self.func(**self.funcargs)

所以它的工作原理如下:

def func(a):
print a
frozenfunc = freezefunc(func)
frozenfunc.call(a='somevalue')

打印:某个值

frozenfunc.call(a='theupdatedvalue')

打印:更新值

有类似的东西我还没找到吗?

更新:函数 partial来自图书馆functools执行几乎相同的任务。

最佳答案

特殊方法__call__可让您直接调用frozenfunc:

class freezefunc:
def __init__(self, func, **funcargs):
self.func = func
self.funcargs = {}

def __call__(self, **kwargs):
self.funcargs.update(kwargs)
return self.func(**self.funcargs)

def func(a):
print(a)

现在:

frozenfunc = freezefunc(func)
frozenfunc(a='somevalue')

打印:

somevalue

和:

frozenfunc(a='theupdatedvalue')

打印:

theupdatedvalue

关于python - 卡住函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34200717/

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