Python:父类,子类继承关系详解。(如何在子类中增加新的属性?)

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

猜你喜欢

转载自blog.csdn.net/qq_40797015/article/details/111999203