Ich habe begonnen, objektorientierte Konzepte in Python zu lernen. Ich habe diesen Beispielcode unten bekam:Zugriff auf Methodenvariablen einer Klasse in einer anderen Python-Klasse
class Student(object):
def __init__(self, name, age):
self.name = name
self.age = age
class School(object):
students = []
def __init__(self, name):
self.name = name
def add_student(self, student):
self.students.append(student)
def show_students(self):
print("{0} Student Roster".format(self.name))
for s in self.students:
print("{0}: {1}".format(s.name, s.age))
my_school = School("Quora University")
first_student = Student("Rongan Li", 20)
second_student = Student("Jason Kane", 20)
my_school.add_student(first_student)
my_school.add_student(second_student)
my_school.show_students()
Frage: Im def show_students Methode der Schulklasse, wie sie die Konstrukts Variablen der Klasse Schüler zugreifen, ohne Instanz dieser Klasse?
Ich denke, es gibt eine tiefere Frage hier: Sollte nicht "Studenten" eine Instanzvariable eines "Schule" -Objekts sein, im Gegensatz zu einer * Klasse * -Variable? Die Art und Weise, wie es eingerichtet wird, indem ein Schüler zu * jeder * Schule hinzugefügt wird, lässt sie als Schüler * aller * Schulen erscheinen. So sieht es zumindest für mich aus. –