2016-10-25 2 views
-1

In der Hoffnung, dass jemand helfen kann. Ich arbeite hauptsächlich in Java und habe eine Aufgabe, die ich in Python erledigen muss, und ich weiß fast nichts darüber.Listen als Argument und Methodenaufrufe

Ich habe eine CSV-Datei, die ich lese und habe es geschafft, eine Liste oder Listen von jedem Element zu erstellen. Jede Zeile steht für eine thingID, Uhrzeit der Anfrage, benötigte Zeit, benötigte Zeit zum Ausfüllen. Ich muss diese in eine Prioritätswarteschlange stellen, sie durchlaufen und Ergebnisse ausdrucken. Obwohl ich nicht weiter gekommen bin als das, was unten gezeigt wird, da ich offensichtlich keine Ahnung habe, wie Funktionen funktionieren. Das ganze Selbst und __init__ Zeug hat mich verwirrt, zusammen mit allem anderen, dass diese Sprache benötigt, um zu funktionieren.

def main(): 
    with open('things.csv', 'r') as file: 
     reader = csv.reader(file) 
     index = 0 
     for row in reader: 
      print(row) 

main() 

Das gibt mir eine Liste von Arrays wie folgt:

['Thing1', '0', '1', '4'] 
['Thing2', '1', '1', '3'] 

Ich habe eine andere Things.py (sind eigentlich nicht mehrere Klassen in einem einzigen Py haben), in dem ich habe:

class Things(object): 
    def __init___(self, row, thingInfo): 
     self.row = row 
     self.thingInfo = thingInfo 

ich versuchte, eine andere def unter den __init__ zu schaffen, aber ich kann nichts tun. Ich versuche, die verschiedenen Teile des Listenobjekts zu trennen, damit ich dann die verschiedenen Teile wie ID, Zeit usw. bearbeiten kann, aber keine Ahnung habe, wie das geht. Ich habe verschiedene Dinge ausprobiert, aber bekomme Attributfehler vom Typ Fehler. Ich bin total am Ende. Jede Hilfe würde sehr geschätzt werden. Ich brauche nur ein paar Schritte in die richtige Richtung, da ich eine Wand vollständig getroffen habe.

+0

Methoden in Java funktionieren nicht anders nicht als Java. Die init-Methode verhält sich nicht viel anders als Java-Klassenkonstruktoren. Es ist nicht sehr klar, was Sie mit jeder Zeile der CSV zu tun versuchen –

+0

Und Python ist es egal, wenn Sie mehrere Klassen pro Skript haben ... Ist Ihre Frage, wie Sie die Things-Klasse importieren? –

+0

Wenn Sie nichts über Python wissen, sollten Sie den ersten Schritt über einen Kurs oder ein Tutorial lernen. SO ist kein Tutorial-Service. – TigerhawkT3

Antwort

0

Liste auspacken kann sein, was Ihr wollen:

class Things(object): 
    def doSomething(self): 
     thing_id, time_of_request, time_requested, time_needed_to_fill = self.row 
     # do whatever u want with the above variables 
+0

Danke. Das war sehr hilfreich. – TheDubiousDubber

0

Hoffnung diese Vorlage hilft:

class Things(object): 

    def __init___(self, row, thingInfo): 
     self.row = row 
     self.thingInfo = thingInfo 

    def doSomething(self, arg1, arg2): # beware the `self` 
     for x in self.row: 
      # do something with x, like: 
      print(x) 

# here is where you use Things 
thing = Things([1, 2, 3], 'info') 
thing.doSomething(1, 2) 
0

Sie explizit die verschiedenen Teile der Liste Objekt Things.__init__() sie durch Indizieren geben trennen könnte wie dies (wie in Java):