首页 > 其他分享 >Day29.继承介绍

Day29.继承介绍

时间:2024-06-24 13:43:38浏览次数:3  
标签:__ Day29 继承 介绍 Parent1 pass print class

1.继承介绍_什么是继承_继承格式___bases__用法

# 1、什么继承?
# I:继承是一种创建新类的方式,新建的类可称为子类或派生类,父类又可称为基类或超类,子类会遗传父类的属性
# II:需要注意的是:python支持多继承
#                   在Python中,新建的类可以继承一个或多个父类

# 继承格式
class Parent1:                  # 类后面加上(object),可以兼容python2解释器
    x = 111

class Parent2:
    pass

class Sub1(Parent1):            # 单继承
    pass

class Sub2(Parent1, Parent2):   # 多继承
    pass

# __bases__查看继承的父类
print('继承的格式,及__bases__查看继承的父类'.center(40, '-'))
print(Sub1.__bases__)
print(Sub2.__bases__)

2.继承介绍_python2和python3类继承的区别

# 继承格式
class Parent1(object):                  # 类后面加上(object),可以兼容python2解释器
    x = 111

class Parent2(object):
    pass

class Sub1(Parent1):            # 单继承
    pass

class Sub2(Parent1, Parent2):   # 多继承
    pass

print('ps2:在python3中没有继承任何类,会默认继承object类,所以python3中所有的类都是新式类'.center(60, '-'))
print(Parent1.__bases__)
print(Parent2.__bases__)

 

3.继承介绍_单继承案例,子类调用父类中的属性或方法

# 继承格式
class Parent1(object):                  # 类后面加上(object),可以兼容python2解释器
    x = 111

class Parent2(object):
    pass

class Sub1(Parent1):            # 单继承
    pass

class Sub2(Parent1, Parent2):   # 多继承
    pass


print('ps2:在python3中没有继承任何类,会默认继承object类,所以python3中所有的类都是新式类'.center(60, '-'))
print(Parent1.__bases__)
print(Parent2.__bases__)

4.继承介绍_单继承和多继承案例以及多继承的优缺点

# III:python的多继承
#       优点:子类可以同时遗传多个父类的属性,最大限度地重用代码
#       缺点:
#           1. 违背了人的思维习惯:继承表达的是一种什么'是'什么的关系,例:子类Sub2是父类Parent1的,也是父类Parent2的
#           2. 代码可读性会变差
#           3. 不建议使用多继承,又可能会引发菱形问题,扩展性变差,如果真的涉及到一个子类不可避免地要重用多个父类的属性,应该使用Mixins

'''单继承'''
class A:
    x = 111

class B(A):
    pass

class C(B):
    pass

class D(C):
    pass

print('单继承案例'.center(40, '-'))
print(D.x)


'''多继承'''
class A:
    x = 111

class B:
    y = 222

class C:
    z = 333
   
class D(A, B, C):
    pass

print('缺点2,多继承,代码可读性变差'.center(40, '-'))
print(D.x, D.y, D.z)

标签:__,Day29,继承,介绍,Parent1,pass,print,class
From: https://www.cnblogs.com/vless/p/18264873

相关文章

  • SUSE linux的启动过程介绍
    引导Linux系统涉及不同的组件和任务。在固件和硬件初始化过程(取决于机器的架构)之后,内核通过引导加载程序GRUB2启动。此后,引导过程完全由操作系统控制并由systemd处理。systemd提供了一组“target”,用于为日常使用、维护或紧急情况启动配置。1术语init有两种不同的进程会......
  • linux三剑客工具使用及硬盘知识介绍
    文本处理工具,文件查找工具,文本处理三剑客,文本格式化命令(printf)的相关命令及选项,示例。文本处理工具cat:连接文件并打印到标准输出。catfile1file2tac:反向连接文件并打印到标准输出。tacfilenl:给文件的每一行添加行号。nlfilemore:分页显示文件内容。morefilele......
  • Java进阶封装、继承、多态、抽象
    一、封装(Encapsulation)概念封装是面向对象编程的基本特性之一,它通过将对象的状态(属性)和行为(方法)包装在一起,对外隐藏对象的内部细节,只暴露必要的接口,以实现数据保护和隐藏实现细节的目的。优点数据保护:防止外部代码直接访问和修改对象的内部数据,确保数据的完整性和有效性。隐......
  • LuBase 低代码开发框架介绍 - 可私有化部署
    框架定位面向开发人员,针对管理软件领域,对页面交互和通用功能进行高阶封装,逐步打造成平台型、生态型开发工具。涓涓细流,汇聚成海,基于PBC(组件式开发)开发理念,让功能模块的复用更简单。让管理软件开发回归到对需求的深入思考和求解。框架简介LuBase是以数据模型驱动,可视化表单......
  • 从移动切换到电信IP:详细介绍两种方法
    在当前的互联网环境中,用户可能会因为各种原因需要切换网络服务提供商,比如从移动切换到电信。这种切换不仅涉及到网络服务的变更,还可能意味着IP地址的改变。那么,移动的怎么切换成电信的IP?下面一起来了解一下吧。方法一:物理更换网络服务如果您想要从移动的网络服务完全切换到......
  • AI大模型企业应用实战(18)-“消灭”LLM幻觉的利器 - RAG介绍
    大模型在一定程度上去改变了我们生活生工作的思考的方式,然后也越来越多的个人还有企业在思考如何将大模型去应用到更加实际的呃生产生活中去,希望大语言模型能够呃有一些更多企业级别生产落地的实践,然后去帮助我们解决一些业务上的问题。目前1LLM的问题1.1幻觉LLM因为是一个预......
  • github上项目介绍
    Fuel客户端:Rust全节点实现创建周期:1441天开发语言:Rust协议类型:OtherStar数量:58468个Fork数量:2700次OpenIssues数量:164个Github地址:https://github.com/FuelLabs/fuel-core.gitGithub订阅地址:https://leensc.com/#/register?code=xReWkJi2Fuel客户端是Fuelv2协议......
  • 机器学习回归预测方法介绍:优缺点及适用情况
            机器学习中的回归任务是预测连续变量的值,这在金融、医疗、市场分析等领域有着广泛的应用。本文将介绍几种常见的机器学习回归方法,探讨它们的基本原理、优缺点及适用情况。1.线性回归(LinearRegression)基本介绍:线性回归是一种基础的回归方法,用于建立自变量......
  • Psim仿真教程04-仿真软件功能介绍/电源工程师初级到高级进阶之路
    目录点击下面文字下载需要的版本:Psim2022中文版下载链接:Psim2022中文版软件下载地址Psim9.1经典版本下载链接:Psim9.1软件下载地址1.Psim软件的主要界面1.1文件菜单栏:1.2编辑菜单栏:1.3视图菜单栏1.4视图选项中的元件清单1.5视图选项中的元件数目菜单可以统计仿......
  • pyqt5创建主窗口(介绍窗口类型)
    创建主窗口(介绍窗口类型)我们用QMainWindow主窗口代码来创建UIQMainWindow.setWindowTitle(字符串),设置窗口标题QMainWindow.resize(800,400),设置窗口尺寸QMainWindow.statusBar(),获取状态栏对象QMainWindow.showMessage('停留5秒消息',5000)QApplication.setWindowIcon(QIco......