【发布时间】:2016-06-19 02:59:57
【问题描述】:
我已经开始在 python 中学习面向对象的概念。我在下面得到了这个示例代码:
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()
问题: 在 School 类的 def show_students 方法中,他们如何在没有该类实例的情况下访问类 student 的构造变量?
【问题讨论】:
-
我认为这里有一个更深层次的问题:
students不应该是School对象的实例变量,而不是 class 变量吗?它的设置方式是将学生添加到任何学校将使他们看起来是所有学校的学生。至少在我看来是这样的。
标签: python python-2.7 python-3.x