2016-07-21 22 views
0

Ich habe einige Text Classification Tutorials ausprobieren here:Verschachtelte Funktionsaufrufe und fehlende Eingabeparameter, Python

Ich verstehe nicht, die Funktion in Zeile ruft 59-65:

#creates a feature selection mechanism that uses all words 
def make_full_dict(words): 
    return dict([(word, True) for word in words]) 

#tries using all words as the feature selection mechanism 
print 'using all words as features' 
evaluate_features(make_full_dict) 

Shouldn 't make_full_dict mit einem String-Eingangswert für words aufgerufen werden?

+0

Es sieht so aus, als ob 'evaluate_features' versucht, Funktionen auszuwerten und diese Funktionen zu verwenden, und sie mit bestimmten Parametern aufruft. Es wäre hilfreich, die Definition von 'evaluate_features' zu posten, um sicher zu sein –

Antwort

1

Ohne weiteren Kontext ist es ein bisschen schwierig, eine vollständige Antwort auf Ihre Frage zu geben. Es scheint, dass die Methode evaluate_features eine Funktion als Parameter übernimmt; In diesem Fall müssen Sie die Funktion, die als Parameter übergeben wurde, nicht aufrufen. Nur evaluate_features sollte das tun. Wenn Sie die Funktion aufrufen, dann ist der Rückgabewert der Funktion, was evaluate_features erhalten, anstatt die Funktion selbst

Wenn Sie sehen wollen, was die Funktion tut, fügen Sie einige print-Anweisungen in der make_full_dict Methode, die helfen Sie sehen, welche Wörter an sie übergeben wurden

+0

Dank @Khredos, der Punkt, den Sie über die Übergabe von "make_full_dict" Rückgabewert gegenüber der Funktion selbst gemacht haben, macht viel Sinn. Prost. – DebNa