我在运行这段代码时遇到问题。类是 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(使用前将#替换为@)