Bu sorun için iyi bir başlık bulmak zor. Lütfen kodlara bakınız.Python'da iki alt nesne birbiriyle eşleştirilir
class School:
def __init__(self, info):
self.name = info['name']
self.student = info['students']
for x in self.student:
self.child[self.student[0]] = Child(x, self.student[x])
self.student[x] = Student(x, self.student[x])
class Student:
def __init__(self, student_info, student_id):
self.id = student_id
self.name = student_info[0]
self.age = student_info[1]
self.sex = student_info[2]
self.attendance = False
class Child(Student)
def __init__(self, student_info, student_id):
self.id = student_info[0]
self.student_id = student_id
schools = {1:{'name':'Hard Knocks', 'students':{1:['Tim',12,M], 2:['Kim',11,M]}}}
Hemen hemen ben Okulu örneği içinde Öğrenci ve Çocuk nesnesi ikisini de kullanarak Öğrenci parametresi 'katılım' muktedir erişim olmak istiyorum.
#instantiating
for x in students:
schools[x] = School(schools[x])
schools[1].student[1].attendance = True
print schools[1].child['Tim'].attendance
ben [1] .student [1] .attendance okulları ayarlanır, ancak onun baskı Yanlış beri son satırı Doğru yazdırmak istiyorum. Bunu nasıl eşleştirebilirim ki [[]] nesnesini [1] nesnesini ayarladığımda, öğrenci [1] nesnesini ayarlamakla aynıdır. öğrenci [1] ve çocuk ['Tim'] aynı Student nesnesinin parametresine eşlenmelidir.
Bu mümkün mü?
Ayrıca sorudan sınıf hiyerarşisine, sadece bir 'child' nesnenin örneğini verebilir ve her' Child' nesnesi olarak, hem çocuk hem de öğrenci diziler buna başvuruda ayrıca bir 'Öğrenci' biridir. , –
süper() .__ init __ (student_info, student_id) yükseltir süper kullanmak işe yaramıyor. –
Süperim çalıştı (Çocuk, kendini) .__ init __ (student_info, student_id) ve Öğrenci (nesne): 'super() (Verilen 0) en az 1 argüman alır TypeError' –