Если вы хотите вызвать экземпляр класса (с ()
, а не []
), вы можете определить __call__()
для класса. Тогда его экземпляры будут вызываться, и вы можете передавать значения, как и любая другая функция:
class Vocab:
def __init__(self, tokens):
self.tokens = tokens
def __call__(self, arg):
print("instance called with ", arg)
return list(zip(self.tokens, arg))
vocab = Vocab([1, 2, 3])
tokenslist = ['a','b','c']
result = vocab(tokenslist)
# result will be [(1, 'a'), (2, 'b'), (3, 'c')]
# prints "instance called with ['a', 'b', 'c']"