类的计数器变量

2024-01-06

我在运行这段代码时遇到问题。类是 Student,它有一个 IdCounter,这就是问题所在。 (第 8 行)

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)

我正在尝试将此 idCounter 放入我的Student班级,所以我可以将其作为学生姓名的一部分(这实际上是一个 ID#,例如Student 12345。但我一直收到错误。

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

我尝试将 idCounter += 1 放入之前、之后、所有组合中,但我仍然得到referenced before assignment错误,你能向我解释一下我做错了什么吗?


类变量必须通过班级名称,在这个例子中Studend.idCounter:

class Student:
    # A student ID counter
    idCounter = 0
    def __init__(self):
        self.gpa = 0
        self.record = {}
        # Each time I create a new student, the idCounter increment
        Student.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)

感谢伊格纳西奥(Ignacio)的指出,巴斯克斯-艾布拉姆斯(Vazquez-Abrams)明白了......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类的计数器变量 的相关文章

随机推荐