के लिए काउंटर वैरिएबल मुझे कोड के इस भाग को चलाने में समस्या आ रही है। कक्षा वह छात्र है जिसमें एक आईडीकॉन्टर है, और यह वह जगह है जहां समस्या प्रतीत होती है। (लाइन 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)
मैं अपने Student
वर्ग के अंदर इस idCounter के लिए कोशिश कर रहा हूँ, इसलिए मैं छात्र का नाम (जो वास्तव में एक आईडी # है, उदाहरण के लिए 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
त्रुटि हो रही है, तुम मेरे लिए मैं गलत क्या कर रहा हूँ की व्याख्या कर सकते हैं?
क्या आपने तुरंत लाइन पर ध्यान दिया है? –
मैंने इसके बारे में क्यों नहीं सोचा है ... (मूल रूप से मेरे कोड ने 'Student.idCounter = 0' लिखा) – George
विशेष त्रुटि के अलावा, पाइथन में वृद्धि परमाणु नहीं है, इसलिए मूर्ख काउंटर दौड़ की स्थिति का कारण बन सकता है। 'Itertools.count' का उपयोग करने का बेहतर तरीका होगा। – bereal