python中继承的用法

本文详细介绍了Python中的继承概念,包括单继承、多继承,以及如何在子类中添加新内容。此外,还探讨了运算符重载的使用,并讲解了实现单例模式的方法。
摘要由CSDN通过智能技术生成

继承

一、继承

1.什么是继承

"""
让子类直接拥有父类的属性和方法的过程就是继承
父类  -  被继承者(又叫超类)
子类  -  继承者
"""

2.怎么继承

"""
class 类名(父类1,父类2,...):
    类的说明文档
    类的内容
    
注意: 默认情况下,定义的类继承自 object
"""


class Person:
    num = 61

    def __init__(self):
        print('Person中init')
        self.name = '小明'
        self.age = 18
        self.gender = '男'
        self.__sex = '女'

    def eat(self):
        print(f'Person:{self.name}在吃饭')

    @classmethod
    def show_num(cls):
        print(f'人类的数量:{cls.num}')

    @staticmethod
    def func1():
        print('人类破坏环境!')


# 让 Student(子类) 继承 Person(父类)
class Student(Person):
    pass


# 继承的时候子类可以直接拥有父类所有的属性和方法
print(Student.num)
stu = Student()
print(stu.name, stu.age, stu.gender)
stu.eat()
Student.show_num()
Student.func1()
print(stu.__dict__)

3.在子类中添加内容

"""
1)在子类中添加类属性和方法
类属性和方法的添加不会因为继承而收到任何影响
2) 添加对象属性
对象属性是怎么被继承:继承的时候因为init方法被继承,间接继承了对象属性

在子类的__init__方法中通过 super()去调用父类的__init__方法
"""

# 类中的方法的调用过程(重要)
"""
通过类或者对象在调用方法的时候,会先看当前类中有没有这个方法,如果有就直接调用自己类中的方法;没有就看父类中有没有定义这个方法,如果父类定义了就调用父类的;父类没有定义,就看父类的父类中有没有定义....以此类推,如果 object 中没有定义才会报错!
"""


class Teacher(Person):
    title = '老师'

    def __init__(self):
        # 调用父类的init方法
        super().__init__()
        self.school = '千锋'
        self.subject = 'Python'
        self.tea_id = '001'

    def attend_class(self):
        print('老师上课')

    def eat(self):
        super().eat()
        print(f'老师在吃饭'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值