1.类的定义
class 类名:
def __init__(self, 参数表):
def 方法名(self, 参数表):
self:指对象的实例
2.子类的定义
类的继承机制:代码复用
一般–>特殊,从父类继承属性和方法
class 子类名(父类名):
def __init__(self, 参数表, 新的属性):
super().__init__(参数表)
self.新的属性 = 新的属性
def 重定义方法(self, 参数表):
3.实例:
(1)问题
(2)程序
class People:
def __init__(self, name, city):
self.name = name
self.city = city
def moveto(self, newcity):
self.city = newcity
def __lt__(self, other):
return self.city < other.city
def __str__(self):
return '(%s, %s)' % (self.name, self.city)
__repr__ = __str__
class Teacher(People):
def __init__(self, name, city, school):
super().__init__(name, city) #保留父类初始化方法
self.school = school # 增加新类
def moveto(self, newschool):
self.school = newschool
def __lt__(self, other):
return self.school < other.school
def __str__(self):
return '(%s, %s, %s)' % (self.name, self.city, self.school)
__repr__ = __str__
'''
s = list()
s.append(People('Jane', 'Beijing'))
s.append(People('Mike', 'Shanghai'))
s.append(People('CoCo', 'Anhui'))
s.append(People('kang', 'Chengdu'))
'''
s = list()
s.append(Teacher('Jane', 'Beijing', 'SCU'))
s.append(Teacher('Mike', 'Shanghai', 'BKU'))
s.append(Teacher('CoCo', 'Anhui', 'HNU'))
s.append(Teacher('kang', 'Chengdu', 'ZZU'))
print('original:', s)
s.sort()
print('sorted:', s)
s1 = Teacher('Jane', 'Beijing', 'SCU')
s1.moveto('TJU')
print('the new school of %s is: %s' % (s1.name, s1.school) )
结果:
original: [(Jane, Beijing, SCU), (Mike, Shanghai, BKU), (CoCo, Anhui, HNU), (kang, Chengdu, ZZU)]
sorted: [(Mike, Shanghai, BKU), (CoCo, Anhui, HNU), (Jane, Beijing, SCU), (kang, Chengdu, ZZU)]
the new school of Jane is: TJU