私は関数呼び出しにmyArgsを追加するためにpartialを使用しています。 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
はこれをnoneクラスのバージョンである:
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'とは何ですか? –