Zählervariable für Klasse

Ich habe Probleme, diesen Code zum Laufen zu bringen. Die Klasse ist Student mit einem IdCounter, und hier scheint das Problem zu liegen. (in Zeile 8)

<code>class Student:
    idCounter = 0
    def __init__(self):
        self.gpa = 0
        self.record = {}
        # Each time I create a new student, the idCounter increment
        idCounter += 1
        self.name = 'Student {0}'.format(Student.idCounter)

classRoster = [] # List of students
for number in range(25):
    newStudent = Student()
    classRoster.append(newStudent)
    print(newStudent.name)
</code>

Ich versuche, diesen IDCounter in meinem zu habenStudent Klasse, so kann ich es als Teil des Schülernamens haben (was zum Beispiel wirklich eine ID # istStudent 12345. Aber ich habe Fehler bekommen.

<code>Traceback (most recent call last):
  File "/Users/yanwchan/Documents/test.py", line 13, in <module>
    newStudent = Student()
  File "/Users/yanwchan/Documents/test.py", line 8, in __init__
    idCounter += 1
UnboundLocalError: local variable 'idCounter' referenced before assignment
</code>

Ich habe versucht, den idCounter + = 1 vor, nach und nach zu kombinieren, aber ich bekomme immer noch denreferenced before assignment Fehler, kannst du mir erklären, was ich falsch mache?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage