类
属性
实例变量
类变量
私有属性
方法
构造方法:初始化实例
析构方法(函数)
私有方法
对象:实例化一个之后得到的对象
封装
把一些功能的实现细节不对暴露
继承
代码的重用
单继承
多继承
2.7 经典类,深度优先;新式类,广度优先
3.x均是广度优先
class SchoolMember(object):
# member = 0
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
# self.enroll()
#
# def enroll(self):
# print("just enrolled a new school member [%s]"%self.name)
# self.member += 1
# def tell(self):
#
# print("---info: %s----"% self.name)
# for k,v in self.__dict__.items():
# print(" ",k,v)
#
# print("--------end---------")
#
# def __del__(self):
# print("开除了[%s]..." % self.name)
# SchoolMember.member -= 1
class School(object):
def open_branch(self,addr):
print("opening a new branch in " ,addr)
school = School()
class Teacher(SchoolMember,School):#多继承
def __init__(self,name,age,sex,salary,course,school_obj):
#SchoolMember.__init__(self,name,age,sex) #经典类写法
super(Teacher,self).__init__(name,age,sex) #新式类写法
self.school =school_obj
self.salary = salary
self.course = course
def teaching(self):
print("Teacher [%s] is teaching [%s]"%(self.name,self.course))
# class Student(SchoolMember):
# def __init__(self,name,age,sex,course,tuition):
# SchoolMember.__init__(self,name,age,sex)
# self.course = course
# self.tuition = tuition
# self.amount = 0
#
#
#
# def pay_tuition(self,amount):
# print("student [%s] has just paid [%s]"% (self.name,amount))
# self.amount += amount
t1 = Teacher("Wusir",22,"F*M",3000,"Python","ShangHai")
# s1 = Student("HaiTao",30,"M","PYS15",300000)
# s2 = Student("LiChuang",12,"M","PYS15",11000)
#
# print(SchoolMember.member)
# t1.tell()
# s2.tell()
# t1.open_branch("ShangHai")