Wenn Sie versuchen, zu berufen, def, den ich bekommen: parameter 'self', ungefüllt
Ich bin versucht, zu schreiben eine Klasse, um nach dem Zufallsprinzip wählen Sie eine Anzahl von songs aus einem Wörterbuch. Der springende Punkt ist, um in der Lage sein, geben Sie einfach DJ.chooseListing()
zum Beispiel zur Ausführung der zufällige Auswahl. Ach es gibt mir eine Fehlermeldung kann ich nicht wirklich finden anderswo auf dem web, und ich glaube, die Antwort ist sehr einfach.
class DJ:
# put song variables here in this format: trackName = Track("string of song to be displayed", 'music/filename.ogg')
trackRickAstleyNever = Track("Never gonna give you up", 'music/rick.ogg')
trackShootingStars = Track("Shooting Stars", 'music/shoot.ogg')
dictSongs = {
# put songs here like this: 'name': varName,
'nevergonnagiveyouup': trackRickAstleyNever,
'shootingstars': trackShootingStars,
}
"""
arrayRandomized = [
# Put future songs here in this format: songs['name'],
]
"""
arrayChosen = []
trackChosen = ""
def chooseListing(self):
for i in xrange(4):
self.arrayChosen.append(random.choice(self.dictSongs))
def chooseTrack(self):
self.trackChosen = random.choice(self.arrayChosen)
DJ.chooseListing()
Fix Einrücken. Schlecht eingerückt Python-code ist Unsinn.
Was ist schlecht daran? Ich benutze nur tabs?
Was Sie hier gepostet haben eine
Mein code funktioniert ganz gut, benutze ich pycharm und ich habe keine Einrückung Fragen so weit. Können Sie mir bitte ein Beispiel, was mache ich dann falsch?
Der code kann funktionieren, aber der code, den Sie gepostet hast hier wäre nicht. Der Inhalt einer Klasse hat, werden eingerückt unterhalb der
Was ist schlecht daran? Ich benutze nur tabs?
Was Sie hier gepostet haben eine
IndentationError
. Es sei denn, das ist das problem, Sie sind das Fragen, die Sie brauchen, um es zu beheben.Mein code funktioniert ganz gut, benutze ich pycharm und ich habe keine Einrückung Fragen so weit. Können Sie mir bitte ein Beispiel, was mache ich dann falsch?
Der code kann funktionieren, aber der code, den Sie gepostet hast hier wäre nicht. Der Inhalt einer Klasse hat, werden eingerückt unterhalb der
class XX:
Linie. Bitte stellen Sie sicher, dass, wenn Sie einfügen von Python-code, den Sie reproduzieren Ihren Einzug genau, ansonsten sind die Einführung neuer Fehler in der code, den Sie sind, Leute zu Fragen, zu Lesen.InformationsquelleAutor Thom Ernst | 2017-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einer Funktion in einer Klasse definiert eine Methode. Eine Methode das erste argument wird automatisch ausgefüllt, wenn Sie es nennen auf eine Instanz der Klasse. Du bist die Definition eines
chooseListing
Methode, aber wenn Sie Sie nennen, Sie sind nicht zum erstellen einer Instanz. Wenn es keine Instanz, es gibt nichts, was übergeben werden kann, wieself
führt, die Ihrer Ausnahme. Versuchen:Können Sie noch brauchen, um einige andere Updates für Ihre Klasse, obwohl, da derzeit alle Ihre Attribute sind Attribute der Klasse (die gemeinsam durch alle Instanzen). Wenn Sie erstellen mutltiple
DJ
Instanzen, Sie alle teilen die gleichearrayChosen
Liste, das ist wahrscheinlich nicht was Sie beabsichtigen. Sollten Sie Ihre Aufträge an einen__init__
Methode, wo man machen kann diese Instanz-Attribute (durch die Zuordnung aufself
):Verließ ich die
Track
Instanzen aus der__init__
Methode, aber dass kann nicht richtig sein, wenn Sie Ihren inneren Zustand, das sollte nicht geteilt werden zwischen den DJs.Oh, hey, das hat tatsächlich funktioniert, ich sehe nicht, was ich falsch gemacht habe, das erste mal ich versuchte es, sowieso, vielen Dank für die Hilfe!!!
InformationsquelleAutor Blckknght