# 选课系统项目中涉及到诸多数据与功能,要求引入面向对象的思想对其进行高度整合
# 1、学校数据与功能整合
# 2、课程数据与功能进行整合
# 3、学生数据与功能进行整合
# 4、讲师数据与功能进行整合
# 5、班级数据与功能进行整合
# ps:不会写的同学,可以先用普通的方式,先把数据与功能都给写好,再考虑基于面向对象的思想进行整合
class School:
def __init__(self,name,address):
self.name = name
self.address = address
def addclass(self,name,schoolname):
classname = SchoolClass(name,schoolname)
return classname
class SchoolClass:
def __init__(self,name,schoolname):
self.name = name
self.address = schoolname
def addcourse(self,name,cycle,price):
course = Course(name,cycle,price)
return course
class Course:
def __init__(self, name, cycle, price):
self.name = name
self.cycle = cycle
self.price = price
class Student:
gender = 0
def __init__(self,school,name,age,id,sex):
self.school = school
self.name = name
self.age = age
self.id = id
self.sex = sex
def choice(self,classname):
self.classname = classname
class Teacher:
def __init__(self,name,age,salary,leve):
self.name = name
self.age = age
self.salary = salary
self.leve = leve
def grade(self,student_obj,grade):
student_obj.gender = grade
school1 = School('老男孩上海校区','上海虹桥')
print(school1.__dict__)
classname1 = school1.addclass('14班', '老男孩上海校区')
print(classname1.__dict__)
course1 = classname1.addcourse('python','5个月','10块')
print(course1.__dict__)
student1 = Student('老男孩上海校区','张三',18,2017050,'男')
student1.choice('python')
print(student1.__dict__)
teacher1 = Teacher('李四',18,10000,3)
teacher1.grade(student1,90)
print(teacher1.__dict__)
print(student1.__dict__)
![复制代码](https://common.cnblogs.com/images/copycode.gif)