IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 继承--python -> 正文阅读

[Python知识库]继承--python

继承

继承的概念:子类将包含父类所有的属性和方法

class People(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def speak(self):
        print("你好")
class Men(People):
    def __init__(self,name,age,high):
        People.__init__(self,name,age)#调用父类属性
        self.high=high
    def jieshao(self):
        print(f"我的名字是{self.name}")
xiaoming=Men("小明",18,85)
xiaoming.speak()
xiaoming.jieshao()

结果为:
你好
我的名字是小明

如果子类调用父类的私有属性或方法就会报错
如果子类想用父类的私有属性或方法,必须 一个下划线+父类名+俩个下划线+私有属性或方法

class People(object):
    def __init__(self,name,age):
        self.__name=name
        self.age=age
    def speak(self):
        print("你好")
class Men(People):
    def __init__(self,name,age,high):
        People.__init__(self,name,age)#调用父类属性
        self.high=high

xiaoming=Men("小明",18,85)
xiaoming.speak()
print(xiaoming._People__name)

类成员的继承和重写
成员继承:子类继承父类除构造方法之外的成员
重写:子类可以重新定义父类中的方法,从而覆盖父类的方法

class People(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def speak(self):
        print("你好")
class Men(People):
    def __init__(self,name,age,high):
        People.__init__(self,name,age)#调用父类属性
        self.high=high
    def speak(self):
        print(f"我的名字是{self.name}我的身高是{self.high}")
xiaoming=Men("小明",18,85)
xiaoming.speak()

结果为:
我的名字是小明我的身高是85

通过类方法mro()或者类的属性下划线+mro+下划线输出这个类的继承结构

class a():
    pass
class b(a):
    pass
class C(b):
    pass
print(C.mro())

结果为:
[<class ‘main.C’>, <class ‘main.b’>, <class ‘main.a’>, <class ‘object’>]

内置函数dir()可以查看内置函数

class People(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def speak(self):
        print("你好")
class Men(People):
    def __init__(self,name,age,high):
        People.__init__(self,name,age)#调用父类属性
        self.high=high
    def speak(self):
        print(f"我的名字是{self.name}我的身高是{self.high}")
print(dir(Men))# 内置函数dir()可以查看内置函数

python可以多继承,即有多个父类,如果俩个父类具有相同的方法名,在子类没有指定父类时,从左到右按顺序搜索

在子类中如果想获取父类方法时,可以用super()

class Dog(object):
    def __init__(self,name,shengying):
        self.name=name
        self.shengying=shengying
    def jiao(self):
        print("汪汪汪")
class xiaotianquan(Dog):
    def __init__(self,name,shengying):
        super().__init__(name,shengying)
    def xxx(self):
        print("okokok")
a=xiaotianquan("aaa","汪汪汪")
a.jiao()

结果为:汪汪汪

class Dog(object):
    def __init__(self,name,shengying):
        self.name=name
        self.shengying=shengying
    def jiao(self):
        print("汪汪汪")
class xiaotianquan(Dog):
    def __init__(self,name,shengying):
        super().__init__(name,shengying)
    def jiao(self):
        print("okokok")
a=xiaotianquan("aaa","汪汪汪")
a.jiao()

结果为okokok
如果在子类定义了和父类一样名称的方法,则子类覆盖父类

class Dog(object):
    def __init__(self,name,shengying):
        self.name=name
        self.shengying=shengying
    def jiao(self):
        print("汪汪汪")
class xiaotianquan(Dog):
    def __init__(self,name,shengying):
        super().__init__(name,shengying)
    def jiao(self):
        print("okokok")
        super().jiao()
a=xiaotianquan("aaa","汪汪汪")
a.jiao()

结果为:
okokok
汪汪汪

super().方法 表示父类的方法

私有属性和私有方法不能被外界和子类调用

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 11:45:10  更:2021-10-15 11:46:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:32:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码