Python学习记录 多态及特殊方法和运算符的重载

灿灿灿的第十五次python记录——继承,重写,多态 python第十五次记录一、继承机制1.1 构造函数1.2 重写方法二、继承机制三、多态四、总结 一、继承机制 ¥子类继承了父类,就继承了父类的方法和属性。 1.可以修改父类的状态或重载父类的行为 2.可以添加新的状态和行为。 关于继承的规则: 1.子类不能直接访问父类中私有的(private)的成员变量和方法。 1.1 构造函数 1.子类不重写 init,实例化子类时,会自动调用父类定义的 init。(构造函数可以被继承) 例子演示: class Father(object): def __ini 阅读详情

2022.08.17 DAY33

多态
  • 多态是指同一个方法调用由于对象不同会产生不同的行为。
  • 多态是方法的多态,属性没有多态。
  • 多态的存在是有2个必要条件:继承、方法重写。

代码示例:

class Man:

    def eat(self):
        print('饿饿,饭饭...')

class Chinese(Man):

    def eat(self):
        print('中国人用筷子吃饭')

class English(Man):

    def eat(self):
        print('英国人用叉子吃饭')

class Indian(Man):

    def eat(self):
        print('印度人用手吃饭饭')

def manEat(m):
    if isinstance(m, Man):
        m.eat()
    else:
        print("不能吃饭...")


def test():
    manEat(Man())
    manEat(Chinese())
    manEat(English())
    manEat(Indian())


if __name__ == "__main__":
    test()

运行结果:

饿饿,饭饭...
中国人用筷子吃饭
英国人用叉子吃饭
印度人用手吃饭饭
特殊方法和运算符的重载
  • Python的运算符实际上是通过调用对象的特殊方法实现的。

      + --- __add__
      - --- __sub__
      <, >=, == --- __it__, __le__, __eq__ 
      >, >=, != --- __gt__, __ge__, __ne__
      |, ^, & ----- __or__, __xor__, __and__
      <<, >> ------ __lshift__, __rshift__
      *, / -------- __mul__, __truediv__ 
      %, // ------- __mod__, __floordiv__
      ** ---------- __pow__
    
  • 常见的特殊方法

      __init__    构造方法
      __del__     析构方法
      __repr__, __str__   打印,转换
      __call__    函数调用
      __getattr__ 点号调用
      __setattr__ 属性赋值
      __getitem__ 索引运算
      __setitem__ 索引赋值
      __len__     长度
    

实例:

class Person:
    def __init__(self, name):
        self.name = name

    def __add__(self, other):
        if isinstance(other, Person):
            return "{0}--{1}".format(self.name, other.name)
        else:
            return "不是同类对象,故不能相加。"

def test():
    P1 = Person("YJP")
    P2 = Person("XX")
    x = P1 + P2
    print(x)


if __name__ == "__main__":
    test()

结果:

YJP--XX
Python高频面试题 - 多态是什么 + 什么是构造函数、构造函数重载、复制构造函数 阅读详情

相关推荐

国密USB Key开发实战:SKF库调用全流程解析(附代码示例)

本文详细解析了国密USB Key开发中SKF库的调用全流程,涵盖从设备枚举、应用容器遍历到数字签名与验证的核心步骤。通过实战代码示例,深入探讨了SKF库的层次化模型、SM2签名实现细节以及纯软件验签方案,为开发电子签章、安全登录等合规应用提供了一套完整的调用开发指南。

oo7890的博客 526

Python函数的重载、多态和继承

Python函数的重载、多态和继承

清風明月_xf 的博客 1万+

WSL2安装(详细过程)

适用于 Linux 的 windows 子系统允许开发人员直接在 Windows 上运行 GNU/Linux 环境 -- 包括大多数命令行工具、实用程序和应用程序,无需修改,而无需传统虚拟机或dualbot设置的开销。

qq_43636384的博客 3万+

python中的类class: 继承、覆盖、重写、重载、扩展、多态、封装

python中的类class: 继承、覆盖、重写、重载、扩展、多态、封装

Toby的博客 3万+

systrace分析 之 问题初步定位

如下surfaceflinger空缺点,上面对应的bufferTX 中有buffer,但VSYNC-SF 过来后,SurfaceFlinger却没有去取,检查测试app “android.settings”, 也没有GPU completion 时间长的问题,所以该部分可以请SurfaceFlinger的owner 进一步确认为何不取buffer。. GPU拿的是acquireFence HWC拿的是releaseFence, GPU是绘图,HWC是合成显示,这两个是互相等待的关系,

yangzex的专栏 3195

电力电子技术(13)——大功率可控整流电路

目录引言2.6.1 带平衡电抗器的双反星形可控整流电路电路结构的特点接平衡电抗器的原因平衡电抗器使得两组三相半波整流电路同时导电的原理分析谐波分析2.6.2 多重化整流电路概述原理目标1)移相多重联结2)多重联结电路的顺序控制3重晶闸管整流桥顺序控制带平衡电抗器的双反星形可控整流电路(是多重化整流电路的重要形式之一)的特点:适用于低电压、大电流的场合。多重化整流电路的特点:绕组的极性相反的目的:消除直流磁通势如图所示,虽然两组相电流的瞬时值不同,但是平均电流相等而绕组的极性相反,所以直流安匝(电流*匝数)互

weixin_45589295的博客 1万+

Python运算符和特殊方法重载

Python运算符和特殊方法重载。

yikoutunsikou的博客 456

基于YOLOv5/v8/v10的答题卡填涂识别与评分系统(附数据集+UI界面+完整代码)

在教育信息化的大背景下,传统的手工阅卷方式正在被智能化技术所取代。答题卡识别作为标准化考试的核心环节,其准确率和效率至关重要。本文将详细介绍如何利用YOLO系列目标检测算法(YOLOv5、YOLOv8、YOLOv10)构建一个答题卡填涂识别与评分系统。文章从数据集的制作与标注开始,逐步深入到模型的训练、评估与对比,最后基于PyQt5设计了一个用户友好的桌面端UI界面,实现了从图像输入到得分输出的全流程自动化。

YOLO 635

【Python】特殊方法、属性和运算符重载(22)

特殊方法、属性和运算符重载、单例模式

yixiaobo2001的博客 676

RAG面试内容整理-7. 多轮问答与上下文拼接策略

在对话式的RAG应用中,多轮问答需要处理上下文相关性问题:用户的提问往往依赖于之前的对话内容。为正确理解用户每一轮的问题,系统需要保留和传递对话历史信息。

不务正业的猿 377

Python爬虫实战:构建高可用静态网页爬虫 - 以 Quotes 网站数据采集为例!

我长期专注 Python 爬虫工程化实战,主理专栏 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 461

特殊方法与运算符重载

使用以双下划线作为前缀和后缀的方法,称之为特殊方法。

wjj2586590669的博客 503

人工智能智能体研究综述:从理论架构到前沿应用

AI Agent,即人工智能智能体,是指能够在特定环境中自主感知、推理、决策并执行行动以实现特定目标的智能系统[1]。自主性反应性主动性(Pro-activeness)和社会性fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;AI Agent核心特征自主性 Autonomy反应性 Reactivity主动性 Pro-activeness。

nmdbbzcl的博客 902

Python基础知识学习记录 2021——1201(面向对象三大特征(多态),特殊方法和运算符重载,特殊属性)

文章目录多态特殊方法和运算符重载特殊属性 多态 多态(polymorphism)是指同一个方法调用由于对象不同可能会产生不同的行为。。同样是吃饭的方法,中国人用筷子吃饭,英国人用刀叉吃饭,印度人用手吃饭。 关于多态要注意以下 2 点: 多态是方法的多态,属性没有多态。 多态的存在有 2 个必要条件:继承、方法重写。 #多态 class Man: def eat(self): print("饿了,该吃饭了!") class Chinese(Man): def eat(s

Lime_Tr的博客 759

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python-20各种内建函数重载

day19回顾: issubclass(cls, 类或元组) 判断类的父子关系 面向对象编程语句的特征: 封装 __ 变量(实例变量(实例属性),类变量(类属性)) 继承 多态 多继承 支持多继承的语言(C++,Python) 方法名冲突 class A: pass mro 类属性 函数重写 让自定义的类添加相应的方法,让此类的对象能够使用内建函数进行...

weixin_44119390的博客 1347

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【Python】面对对象超全总结:封装,继承,多态

使用对象组织数据:【代码示例】: 类与对象 类的定义python中使用class关键字来定义一个类,语法如下: 在类中可以定义对象的属性和方法,属性和方法类似于前面所讲的变量和函数,但类中方法形参表的第一个参数是self,它是一个指代对象的默认参数。即在成员方法中访问成员变量,是通过参数列表中访问到的【代码示例】 类中的特殊方法 构造方法 作用:在创建对象时对对象的属性进行初始化。每个类中都有一个构造方法,如果类中显式定义了构造方法,那么创建对象时调用的是显式定义的构造方法;否则调用默认的构造方法。init

2301_79279099的博客 1339

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Python 面向对象编程全解|封装、继承、多态、运算符重载 + 好友管理 / 猜拳 / 银行管理系统实战

本章系统讲解 Python 面向对象编程的核心知识,涵盖面向对象与面向过程的区别、类的定义与使用、类的成员(属性、方法、私有成员)、特殊方法(构造与析构)、封装、继承、多态与运算符重载,并通过好友管理系统、单词本、人机猜拳游戏和银行管理系统等实训案例,帮助读者理解面向对象思想并掌握实际编程技巧。

2602_95508776的博客 390

python基础08-面向对象02-多继承、多态、设计模式、object超类

东阳的学习记录,坚持就是胜利 文章目录面向对象三大特征继承查看类的继承层次结构object根类dir() 查看对象属性重写object的__str()__方法多重继承和MRO()MRO使用super()获得父类定义多态特殊方法和运算符重载常见的特殊方法统计每个运算符对应相应的方法特殊属性组合设计模式工厂模式(将类的创建全部交给工厂函数,便于管理)单例模式(一个唯一的全局的实例对象) 面向对象三大特征 Python 是面向对象的语言,也支持面向对象编程的三大特性:继承、封装(隐藏)、多态。 继承 Pyth.

qq_22473333的博客 277

HuaPu在学:Python基础知识—PyCharm版【私有化 & 继承 &多态 & 组合 & 运算符重载】

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 ` 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as pl

yililjljl的博客 852

Python学习记录3——面向对象

目录 零之前言 一.类及其成员定义 1.类定义 2.类对象 二.类操作 1.类方法: ①自定义 ②特殊 2.继承 ①单继承 ②多继承 ③解决途径 3.方法重写 4.运算符重载 零之前言 先说,本教程需要对象……没有对象的话,自己建一个。我是通过C++学习过面向对象方面的知识的,所以,我只作面向对象在Python中的应用,而对于面向对象的理解,需要看其他的东西。菜鸟教...

康娜喵的原创博客 284

【Python学习】面向对象

作为python的主要特征之一,面向对象无疑是非常重要的一部分,只有熟练掌握了继承、多态、公私有等问题,才能利用好类的属性。所以,本篇笔记用一篇来记录面向对象的有关知识。

qq_62906846的博客 470

Python语言学习笔记

Python语言学习笔记 文章目录Python语言学习笔记第一阶段day01一、Python的理解三种语言二、环境:python3.6+ pycharmday02一、变量二、字符串字符串下标和切片切片day03变量如何使用变量数字类型字符串类型切片运算符赋值运算符列表【增删改查】**元祖****字典****set集合**day04流程控制缩进循环结构for循环**random模块****string** 字符串python推导式day05字符和编码阶段二:诸侯割据、天下大乱阶段三:分久必合文件操作简化写法第

虎康的博客 1841

python随笔(四)---------python对象和类

在写下面的内容的时候我想了一下,什么是对象什么是类 对象其实就是类的实例化,我们可以把生活中的真是世界看成是由许多的类所组成的。对象可以是有生命的,也可以是没有生命的。 而类是具有相同属性及相同行为的一组对象。类其实就是用户定义的一个数据类型。可以用来实例化对象。 本人语文表述一项很菜,如果看不懂大家可以百度下,其实多写写代码就能体会到。我以前就是没有很好的理解随着不断写代码自己才体会到。 我想记...

小远的博客 236

掌握Python魔法方法:如何用__add__和__len__自定义类的行为

在 Python 的面向对象编程中,特殊方法与魔法方法是赋予类“超能力”的关键。通过这些以双下划线(__)开头和结尾的方法,你可以让自定义类像内置类型(如listdict)一样,支持加法、索引访问等操作。无论是初学者还是进阶开发者,掌握魔法方法都能让你的代码更简洁、更 Pythonic。本文将围绕“特殊方法与魔法方法”展开,详细讲解常见魔法方法(如__add____len__)、如何自定义类的行为,以及它们在实际项目中的应用场景。文章从基础到高阶,逻辑清晰,配以代码示例和图表,确保你能快速上手并深入理解。

吴师兄大模型的博客 1182

学习日志08 python

对于自定义类而言,直接使用运算符会引发错误。这时就需要借助__add__()方法来定义特定的加法逻辑。python运行self.x = xself.y = y# 定义向量加法:对应分量相加v3 = v1 + v2 # 等价于 v1.__add__(v2)print(v3.x, v3.y) # 输出: 4 6默认行为局限Python 原生的运算符只能处理内置类型,像intstr等,对于自定义类的对象并不适用。自定义运算规则:借助__add__()方法,我们可以让对象支持类似数学的自然运算。

im_AMBER的博客 847

Python入门学习记录

本文介绍了Python编程的基础知识和高级用法。主要内容包括:Python的应用领域(脚本、后端开发、数据分析等)及其语法简洁的特点;Python解释器和PyCharm开发环境的安装配置;基本语法如print/input函数、数据类型、条件语句、循环结构等;四种数据结构(列表、元组、集合、字典)的特点和使用场景;函数定义、模块导入等编程基础。高级部分涵盖面向对象三大特性(封装、继承、多态)、文件操作、异常处理、单元测试、断言、高阶函数和lambda表达式等。文章提供了详细的操作说明和注意事项,适合Pytho

LYC_462857656的博客 644
上一篇: Python学习记录 重写__str__()方法
下一篇: Python学习记录 对象的浅拷贝和深拷贝
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值