【python】Inheritance继承

Python语言 的继承(Inheritance) 在面向对象编程(OOP)中,是一个重要的概念。它允许一个类(子类或派生类)继承另一个类(父类或基类)的属性和方法,从而促进代码的重用和系统的扩展。在Python中,继承是一种强大而灵活的机制,不仅提高了代码的复用性,而且使得程序的设计更具层次性和可维护性。本文将深入探讨Python语言的继承核心知识,包括继承的基本概念、类型、实现方式以及常见的应用场景。 阅读详情
class NamedAnimal:
    def __init__(self, name):
        self.name = name
    
    def __str__(self):
        return "{} {}".format(type(self).__name__, self.name)

    def __repr__(self):
        return "{}('{}')".format(type(self).__name__, self.name)

class Dog(NamedAnimal):
    def __init__(self, name, age):
        # step 1: manually call parent init
        NamedAnimal.__init__(self, name) 
        # step 2: do our own additional init
        self.age = age
    
    def speak(self):
        print("bark")
    
class Cat(NamedAnimal):
    def speak(self):
        print("bark")
        
    def __str__(self):
        return NamedAnimal.__str__(self) + ", string expert"

c = Cat("Kevin")
print(c)
d = Dog("Sam", 1)
print(d)

输出

Cat Kevin, string expert
Dog Sam

从上面可以看出:

  1. 如果子类没有定义自己的初始化函数,那么在构建子类对象时父类的初始化函数会被默认调用,但是在这种情况下,子类的定义参数必须与父类一致,否则会出错。
    比如在定义cat时,如果是c = Cat(“Kevin”, 1),则报错:
    TypeError: init() takes 2 positional arguments but 3 were given

  2. 如果子类定义了自己的初始化函数,则不会自动调用父类的初始化函数,必须要手动传参调用。如果初始化了父类,那么父类和子类的属性都可以被使用。
    比如把Dog中NamedAnimal.init(self, name) 这一句注释掉,再print(d)时会报错:
    AttributeError: ‘Dog’ object has no attribute ‘name’

Idea创建多模块maven聚合项目的实现 主要介绍了Idea创建多模块maven聚合项目的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 立即下载

相关推荐

FPGA+CMV4000实战:从零搭建20fps成像系统的5个关键步骤(附避坑指南)

本文详细介绍了如何从零搭建基于FPGA和CMV4000传感器的20fps成像系统,涵盖硬件选型、SPI通信优化、LVDS数据采集、DDR2内存管理及系统集成等5个关键步骤。特别针对CMV4000传感器的SPI配置和高速数据处理的常见问题提供实用解决方案,帮助开发者避免常见陷阱,提升成像系统性能。

weixin_42628688的博客 428

Maven POM 文件中的中的继承(Inheritance)和 聚合(Aggregation)- IDEA 和 Eclipse 中多模块项目的 Maven 组织方法

Maven POM 文件中的继承和聚合(Inheritance & Aggregation) 之前在 IDEA 里建了一个项目专门用来学习,每个知识点都建立一个相应的模块,这样比较方便学习和查看。今天在建第二个模块的时候发现,这个模块很多的依赖和第一个模块相同,按照我之前一个项目就一个模块的做法,那肯定是要把依赖再复制粘贴一遍。但是在同一个项目里面,随着模块不断增加,不能每次都...

kandigx的博客 8390

【智能体评测】BrowserUse:一款超越 Anthropic Computer Use 的开源智能体

本文将全面介绍 BrowserUse 的核心功能、配置与使用方法,以及通过多场景测试评估其性能。

surfirst的博客 4099

maven pom.xml文件教程详解

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33875839的博客 861

FPS游戏自动枪械识别+压枪(以PUBG为例)

使用Python3.9作为开发环境,实现一个通用的FPS游戏自动检测枪械配件+压枪宏的软件开发思路

weixin_37827742的博客 3万+

用大白话讲解Carplay(原创)

用大白话讲解Carplay: Carplay是美国苹果公司开发的一套服务,用户通过这套服务可以将iPhone与车载系统连接,然后在车载大屏上操作使用iPhone手机。个人理解,Carplay不能叫车载系统,不是操作系统,只能算一种服务。让你在车上的大屏上使用iPhone,这样用起来更方便,不需要在手机小屏幕上操作。基于这一点,有些人也说Carplay就是个投屏的功能,将手机屏幕投屏到了车机大屏上。可以简单这么理解,但是并不只是投屏这么简单,如果只是投屏的话,车子只是起到了一个显示器的功能,其实不止,手机和

cici2013的专栏 2万+

SpringBoot原理分析(初级版本)

一、启动类 package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @Author: 98050 * @Time: 2019-05-02 20:06 *...

lyj2018gyq的博客 1610

玩转 Milvus(二):在 Ubuntu 22.04(WSL2)上安装 Milvus

本文详细介绍了在Ubuntu 22.04(WSL2)环境下安装Milvus向量数据库的两种单机模式:Milvus Lite和Milvus Standalone。Milvus Lite作为轻量级Python库,适合快速学习和小规模实验,只需通过pip安装即可使用。Milvus Standalone则支持Docker和Docker Compose两种部署方式,适合开发测试或小规模生产环境。文章对比了不同安装方式的优缺点,并提供了验证案例和常见问题解答,帮助开发者快速上手,实现简单的语义搜索功能。

企业级后端与 AI 应用开发双线探索 2507

初步搭载maven环境,解决各种报错和各种问题

一:Eclipse配置maven 第一种:使用eclipse自带的maven环境 第二种:自己下载maven压缩文件,配置maven环境 maven下载地址 maven的配置 可能会遇到的问题 1:eclipse下载maven配置文件速度过慢 解决办法:在下载eclipse的时候选择中国的镜像文件 并且在maven的配置文件settings.xml中添加阿里云的镜像地址 <mirror...

qq_43494997的博客 530

大模型多智能体协作面试题及参考答案

在多智能体系统里,代理定义自身目标或效用函数的过程与系统架构、应用场景紧密相关。从本质上讲,目标是代理行为的导向,而效用函数则是对目标达成程度的量化评估。代理通常依据自身角色、系统全局需求以及与其他代理的交互关系来确立目标。比如在合作型 MAS 中,代理目标可能需要与全局目标对齐,像多个物流机器人协作完成货物配送时,每个机器人的目标会围绕 “高效完成分配任务”“避免路径冲突” 等展开,其效用函数可能涉及任务完成时间、能耗等指标的加权求和。目标定义的方式存在多种类型。

大模型大数据攻城狮的专栏 1022

基于深度学习的柑橘病害检测系统——YOLOv8 + UI界面 + 数据集

深度学习是机器学习的一种重要分支,它通过构建多层的神经网络(尤其是卷积神经网络CNN)来从大规模的数据中学习特征。近年来,深度学习特别是在计算机视觉领域取得了显著的进展,成为图像分类、目标检测、图像分割等任务的主要技术。对于农业病害检测问题,深度学习通过对大量带标签的病害图像进行训练,能够自动识别不同类型的病害,并判断病害的程度。通过图像中目标(病害区域)的边界框,可以快速定位病害区域,进一步分析其影响范围。

YOLO 1044

Python中的继承(Inheritance)思想

一个子类只继承一个父类。

qq_41081716的博客 940

如何选择深度强化学习算法:MuZero/SAC/PPO/TD3/DDPG/DQN/等算法

如何选择深度强化学习算法:MuZero/SAC/PPO/TD3/DDPG/DQN/等算法

丨汀、的博客 5222

python:继承(Inheritance)

python:继承(Inheritance)

听海边涛声 1177

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Python面向对象三要素-继承(Inheritance)

           Python面向对象三要素-继承(Inheritance)                                       作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 一.继承概述 1>.基本概念   前面我们学习了Python的面向对象三要素之一,封装。今天我们来学习一下继承(Inheritance...

weixin_30949361的博客 498

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Python基础之继承Inheritance

# python面对对象的继承指的是多个类之间的所属关系,即子类默认继承父类的所有属性和方法 class a(object): def __init__(self): self.num = 1 def info_print(self): print(self.num) class b(a): # 继承 pass result = b() result.info_print() # 单继承与多继承 class Master(object): .

weixin_45889163的博客 300

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

python3 继承(inheritance)

1. 定义 继承是类之间共享功能的一种方式。当我们定义一个类(class)的时候,可以从某个现有的类继承。新的类称为子类(subclass),而被继承的类称为基类、父类或超类(base class、super class)。 2. 用法 2.1 直接继承 当一个类要从另一个类处继承功能时,只需要在定义类时将父类名放置在子类名后的括号里,这样子类就拥有父类的全部功能了。 输入:

yunyi4367的博客 624

python继承代码_Python - 继承(Inheritance) 的 详解 及 代码

继承(Inheritance) 的 详解 及 代码本文地址:http://blog.youkuaiyun.com/caroline_wendy/article/details/20357767继承可以使代码重用, 是类型和子类型的关系;Python中, 继承是在类名的括号中填入继承的基类, 即class DerivedClass(BaseClass):基类初始化需要使用self变量, 即BaseClass....

weixin_39602976的博客 191

Python - 继承(Inheritance) 详解 及 代码

http://blog.youkuaiyun.com/caroline_wendy/article/details/20357767 继承可以使代码重用, 是类型和子类型的关系; Python中, 继承是在类名的括号中填入继承的基类, 即class DerivedClass(BaseClass): 基类初始化需要使用self变量, 即BaseClass.__init__(self, val1,

newfayi的博客 739

python学习记录七-继承inheritance

1.继承是一种使用代码的机制,不局限于python,支持大多数的语言 常见原则:DRY原则,donnot repear yourshelf 2.python不喜欢空类,为了迎合,可以在类里面丢一个pass 解决报错: 3.继承

weixin_39425607的博客 158

笨方法学Python 习题 44: 继承(Inheritance) VS 合成(Composition)

童话里经常会看到英雄打败恶人的故事,而且故事里总会有一个类似黑暗森林的场景——要么是一个山 洞,要么是一篇森林,要么是另一个星球,反正是英雄不该去的某个地方。当然,一旦反面角色在剧情 中出现,你就会发现英雄非得去那片破森林去杀掉坏人。当英雄的总是不得不冒着生命危险进到邪恶森 林中去。 你很少会碰到这样的童话故事,说是英雄机智地躲过这些危险处境。你从不会听英雄说:“等等,如果 我把白富美留

NM13 1442

Python - 继承(Inheritance) 的 详解 及 代码

继承(Inheritance) 的 详解 及 代码 本文地址:http://blog.youkuaiyun.com/caroline_wendy/article/details/20357767 继承可以使代码重用, 是类型和子类型的关系; Python中, 继承是在类名的括号中填入继承的基类, 即class DerivedClass(BaseClass): 基...

weixin_34249678的博客 101

python继承代码_Python 基础知识全篇-继承(Inheritance)

面向对象程序设计最重要的目的之一就是创建稳定的,可靠的,可重用的代码。如果你为每个对象都创建一个新类,你也很难写出可重用的代码。在 Python 和任意支持面向对象编程的语言中,一个类可以继承另一个类。这也意味着你可以在旧类的基础上创建新类。新类继承旧类中所有的属性和行为。新类可以重写覆盖任一继承自旧类的属性或行为。也可以添加新的属性和行为。旧类被称为父类,新类被称为父类的孩子。父类也被称为 su...

weixin_39522486的博客 125

Python编程基础:第四十一节 继承Inheritance

第四十一节 继承Inheritance前言实践 前言 我们这一节一起来学习类的继承,这里需要首先学习两个概念:父类和子类。我们可以这么想,当定义好一个类以后,我们又有一个新的类,这个新的类需要用到之前定义好类中的属性以及方法,并在其基础上添加新的属性和方法,此时我们便可使用继承的方法,将之前的类当作父类,将新定义的类当作子类。简而言之,父类中定义公共的属性和方法,子类中针对每一个对象再定义属于其的一些属性和方法。通常而言,其代码结构为: # 父类 class 父类名称: 公共属性 def 父类方法1(s

wzy628810的博客 334

Python 继承(Inheritance)完全指南:从 OOP 基础语法到低层设计实战

本文以 [oop/python/inheritance/README.md](https://link.gitcode.com/i/339dbf9e128f3eebc20476ea700899b4) 为骨架,系统讲解 Python 面向对象编程中的**继承(Inheritance)**机制:从父类/子类的基础语法、四种继承类型、方法重写与 `super()` 用法,到该机制在低层设计(LLD)项目

gitblog_00153的博客 785
上一篇: 【python】Special Methods魔方方法
下一篇: 【python】Regular Expressions正则表达式
Mathilda三三
博客等级 码龄7年 1粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值