我正在使用partial来将myArgs添加到我的函数调用中。但是计算myArgs的值需要从文件中读取它。 我想将部分装饰器转换为类。 我该怎么办?functools.partial(func,myArgs)的等价类是什么?
class withHostAndToken(object):
def __init__(self, func):
self.HOST = ''
self.TOKEN = ''
def __call__(self, func):
if self.HOST == '':
self.HOST = cfg.getHost()
if self.TOKEN == '':
self.TOKEN == cfg.getToken()
return functools.partial(func , self.HOST, self.TOKEN)
我得到的错误是:
return functools.partial(func , self.HOST, self.TOKEN) TypeError: the first argument must be callable
下面是这个无类版本:
def withHostAndToken(func):
HOST = cfg.getHost()
TOKEN = cfg.getToken()
return functools.partial(func , HOST, TOKEN)
,这可与:
@withHostAndToken
def myFunction(HOST, TOKEN, other_arg):
'''do something'''
myFunction(other_arg='someValue')
我开始回答这个问题,但......不能。你可以在你如何使用'functools.partial'的方式发布例子吗? –
什么是'func',看起来不是函数?为什么你将它传递给'__init __()'和'__call __()' – AChampion
同意。这里有什么'func'? –