Contador variable para la clase

Estoy teniendo problemas para obtener este pedazo de código para ejecutar. La clase es Estudiante que tiene un IdCounter, y es donde el problema parece estar. (en la línea 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>

Estoy tratando de tener este idCounter dentro de miStudent clase, por lo que puedo tenerlo como parte del nombre del estudiante (que es realmente un número de identificación, por ejemplo,Student 12345. Pero he estado recibiendo error.

<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>

Intenté poner el idCounter + = 1 en antes, después, toda combinación, pero todavía estoy recibiendo elreferenced before assignment error, ¿puedes explicarme lo que estoy haciendo mal?

Respuestas a la pregunta(2)

Su respuesta a la pregunta