2017-05-02 4 views
-2

Ich versuche, ein Stück Code zu schreiben, der nach einer Zeichenfolge im Diagramm suchen kann und wenn es gefunden wird, wird eine Zeichenfolge gedruckt, die anzeigt, dass es gefunden wurde. Ich denke, dass die Art, wie ich mit contains nach es suche, korrekt ist, ich habe nur Probleme zu verstehen, wie ich eine Zeichenfolge drucken kann, die diese Information zeigt. Unten ist der fragliche Abschnitt, speziell bei def__contains __().Suche nach einem String und Drucken von Ergebnissen mit def__contains __()

def __contains__(self, item): 
     if "EVGA" in self.graph: 
      print "Contains EVGA" 
     else: 
      print "Doesn't Contain EVGA" 
+0

Das hängt davon ab, was 'self.graph' ist. Wahrscheinlich möchten Sie auch 'item' verwenden, keinen fest codierten Wert von' 'EVGA''. – chepner

Antwort

0

Ich hoffe, ich verstehe Ihre Frage, aber ich bin zu raten Sie verwenden möchten __contains__ suchen Sie nach der Zeichenfolge (Grafikkartenname) und ändern, wenn eine Erklärung drucken festgestellt, dass es die Grafikkarte enthält. Wenn ja, könnten Sie die __contains__ Funktion in der COMPUTER Klasse wie unten gezeigt ändern:

def __contains__(self, item): 
    if item in self.graph: 
     print ("Contains {0}".format(item)) # this is optional 
     return True 
    else: 
     print ("Does not Contain {}".format(item)) # this is optional 
     return False 

wenn Sie

print("EVGA" in computer1) 
print ("EVGA" in computer2) 
print ("Gigabyte" in computer2) 

laufen erhalten Sie:

Contains EVGA 
True 
Does not Contain EVGA 
False 
Contains Gigabyte 
True 

EDIT: nach Kommentar von user2357112

erwähnt
+0

Danke, das war die Erklärung, auf die ich gehofft hatte. – alienmode

+0

'__contains__' ist die Methode zur Implementierung des' in'-Operators; Sie sollten niemals eine Zeichenkette davon zurückgeben. Dadurch wird die Verwendung des "in" -Operators aufgehoben. – user2357112

+0

@ user2357112, danke. Ich wusste, dass das kommen wird;) Ich habe gerade versucht, dem OP eine Erklärung zu geben, wie man eine Aussage drucken kann. Ich verstehe, was Sie sagen, ich werde es nach Ihrem Vorschlag ändern. – plasmon360

Verwandte Themen