我有一个名为createEmbeds的类,我想将变量pretrained_path,ffn_weight_file,bert_ffn_weight_file和embedding_file传递给它。
然后我希望在此类中创建新对象时传递这些变量。我已经导入了其他类,现在我想通过传入变量来创建它们的实例。
然后我想将那些对象传递给另一个对象。
这是我的尝试
from Scripts.predictor_functions import QAEmbed, FaissTopK, RetreiveQADoc
class createEmbeds:
def __init__(self, pretrained_path = None, ffn_weight_file = None, \
bert_ffn_weight_file = 'models/bertffn_crossentropy/bertffn', embedding_file = 'qa_embeddings/bertffn_crossentropy.csv'):
self.pretrained_path = pretrained_path
self.ffn_weight_file = ffn_weight_file
self.bert_ffn_weight_file = bert_ffn_weight_file
self.embedding_file = embedding_file
def get_qa_embed(self):
qa_embed = QAEmbed(
pretrained_path=self.pretrained_path,
ffn_weight_file=self.ffn_weight_file,
bert_ffn_weight_file=self.bert_ffn_weight_file
)
return qa_embed
def get_faiss_topk(self):
faiss_topk = FaissTopK(self.embedding_file)
return faiss_topk
doc = RetreiveQADoc(get_qa_embed(self), get_faiss_topk(self))
我得到
NameError: name 'self' is not defined
错误
完全错误
1 frames
/usr/local/lib/python3.6/dist-packages/Scripts/inference_question_to_topk_functions2.py in createEmbeds()
26 return faiss_topk
27
---> 28 doc = RetreiveQADoc(get_qa_embed(self), get_faiss_topk(self))
29
30 # print(doc.predict('i have a headache.',
NameError: name 'self' is not defined