我正在使用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'? –