精心总结的python面向对象

全面Python编程实践题库及解答 Python是一种高级编程语言,由Guido van Rossum于1989年圣诞节期间设计。它的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而不是使用大括号或关键字)。这种语言特性使得Python成为一种解释型、交互式、面向对象的编程语言。要开始Python之旅,您需要在计算机上安装Python解释器。安装过程简单,从Python官方网站下载对应操作系统的安装包,运行安装向导,并确保将Python添加到系统的环境变量中。安装完成后,您可以通过命令行输入。 阅读详情

一、面向对象的基本概念

  • 类:描述具有相同属性和方法的对象集合。它定义了该集合中每个对象所共有的属性和方法。对象是类实例。
  • 类变量:类变量是整个实例化的对象中是公共的。类变量是定义在类中,且在函数体外的。类变量不做实例变量使用。
  • 局部变量:定义在方法中的变量,只能被类的当前实例使用。
  • 数据成员:类变量或者实例变量,用于处理类或实例对象的相关数据。
  • 方法重写:子类继承的父类的方法,如果不能满足子类的需求则需要进行方法的重写,覆盖父类的方法,这个过程叫override
  • 继承:一个派生类继承基类的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。
  • 实例化:创建一个类的实例,类的具体对象。
  • 方法:类中创建的函数。
  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

二、Python的私有方法、私有属性的理解

  • _xxx :保护变量,只有类的实例和子类实例才可以访问这些变量,需要类提供的接口才可方位
  • __xxx :类中的私有变量/私有方法,意思是:只有类对象自己才能进行访问,连子类的对象也不能访问。
class Dog:
    # 私有方法,只有类对象自己才可进行方位
    def __sit_down(self):
        print('坐下了')
        
    def sit_down(self,host_name):
        if host_name == '主人':
            self.__sit_down()  # 只能在这里使用


if __name__ == '__main__':
    w = Dog()
    w.sit_down('主人')
    w.__sit_down()   # 这里调用会报错
  • __xxx()__:表示Python类中的特殊方法标识,其中内置方法表示一个类被创建之后,其自然就包含这些方法。查看方法:
'_Dog__sit_down', 
'__class__',
'__delattr__',
'__dict__', 
'__dir__', 
'__doc__', 
'__eq__', 
'__format__', 
'__ge__', 
'__getattribute__', 
'__gt__', 
'__hash__', 
'__init__', 
'__init_subclass__', 
'__le__', '__lt__', 
'__module__', 
'__ne__', 
'__new__', 
'__reduce__', 
'__reduce_ex__', 
'__repr__', 
'__setattr__', 
'__sizeof__', 
'__str__', 
'__subclasshook__', 
'__weakref__', 
'sit_down'

归纳总结如下:

  • 类的私有属性,不能通过类的实例直接访问,但是可以类的方法访问;
  • 类的私有方法,不能通过对象直接访问,但是能通过类的方法方位;
  • 类的私有属性、私有方法,不会被子类继承,也不能被访问;
  • 一般情况下,私有的属性、方法都是不对外公布的,往往用来做内部的事情,起到安全的作用;
  • 可以通过调用继承的父类的共有方法,间接的访问父类的私有方法、属性;

三、类的继承

1.类的简单继承:直接继承父类所有方法和属性,不做任何改动。

class Animal:    
    def __init__(self,name,sex,type):
        self.name = name
        self.sex = sex
        self.type = type
    
    def eat(self):
        print("{} eat".format(self.name))

    def run(self):
        print("{} run".format(self.name))

class Cat(Animal):
    pass

if __name__ == '__main__':
    tom = Cat('tom','1','猫')
    tom.run()
    tom.eat()

2.类继承中的重写:重写是对父类中的某些方法进行重新编写,因为有些继承过来的方法,功能不能满足要求。

class Cat(Animal):
    def eat(self):
        print('{} eat fish'.format(self.name))

3.类继承中的拓展:子类除了从父类中继承得到的方法之外,一定还有自己的特有属性和方法,因此要对子类进行拓展,增加新的属性和方法。

class Cat(Animal):
    def eat(self):
        print('{} eat fish'.format(self.name))

    # 子类方法的拓展
    def method(self):
        print('{} can catch mouse'.format(self.name))

小结:通过类的重写和拓展,有如下操作:

  • 对父类方法进行重写之后,子类调用的是子类重写的方法;
  • 子类可以直接调用父类中的属性值;
  • 子类可以对父类进行一些拓展,丰富自己的方法数量;
  • 子类中的方法可以调用父类中的方法和属性,直接通过子类的实例进行调用即可。在子类中,通过self可调用,在类外可通过子类的实例进行调用。
  • 父类不能调用子类的方法和属性;

4.类的多重继承

class A:
    def add(self,a,b):
        self.a = a
        self.b = b
        print('类A中的加法:',self.a + self.b)

class B:
    def add(self,a,b):
        self.a = a
        self.b = b
        print('类B中的加法:',self.a + self.b)

    def add(self,a,b):
        self.a = a
        self.b = b
        print('类B中的减法:',self.a - self.b)

class C(A,B):
    pass 

class D(B,A):
    pass

当类存在多继承时,一般是按照深度优先进行遍历的。

5.类的超继承:即要拥有父类的特征,又要有子类的新特征。

class Animal:
    def __init__(self,name,sex,type):
        self.name = name
        self.sex = sex
        self.type = type

    def eat(self):
        print("{} eat".format(self.name))

    def run(self):
        print("{} run".format(self.name))

# 子类中进行超继承
class Dog(Animal):
    def __init__(self):
        super(Dog, self).__init__('jerry','dog','中华田园犬') # 超继承
        print('this is a dog')

    def suck(self,food):
        super(Dog,self).eat()    # 超继承
        print('{} eat {}'.format(self.name,food))

if __name__ == '__main__':
    dog_a = Dog()
    dog_a.suck('XXX')

super类是子类的类名,顺着子类的类名找到对应的父类,并调用父类的方法,实现超继承。

<完>

 

 

 

 

 

 

通过《笨办法学 Python (第四版)》掌握编程实践技巧 在Python中,字符串通过单引号(' ')、双引号(" ")或三引号(''' '''或""" """)定义。单双引号用于定义单行字符串,而三引号多用于定义多行字符串。# 单双引号定义字符串# 三引号定义多行字符串字符串赋值时,Python会自动为其分配内存,并创建一个指向该内存的引用。在Python中,函数是一种组织代码的方式,它可以重复使用一组代码块来执行特定任务。函数的定义使用def关键字,后跟函数名和一对圆括号(),其中包含任何参数,然后是一个冒号。 阅读详情

相关推荐

实战演练:基于Veristand Custom Device的硬件在环(HIL)数据流控制模块开发

本文详细介绍了基于Veristand Custom Device的硬件在环(HIL)数据流控制模块开发实战。通过LabVIEW环境配置、动态路由逻辑构建、实时处理核心开发及性能优化等关键步骤,帮助工程师快速掌握定制化HIL测试系统的开发技巧,提升测试效率与准确性。

weixin_29206669的博客 470

deepfakes视频的网站_Dealing with Deepfake Videos 应对“深度伪造”视频

total control of 完全控制candid adj.坦率的;直白的To be candid , I can't stand her . 说实话,我受不了她。audience n.观众;听众vacantly adv.神情茫然地on closer inspection 仔细一看;定睛一看it turned out 原来...couterfeit n.赝品,仿冒品...

weixin_39945475的博客 2万+

保姆级教程:在Zynq UltraScale+ EV系列FPGA上,用VCU IP核搞定4K60帧H265视频解码与HDMI2.0输出

本文提供在Zynq UltraScale+ EV系列FPGA上使用VCU IP核实现4K60帧H265视频解码与HDMI2.0输出的全流程指南。从开发环境准备、Vivado工程配置到PetaLinux系统定制,详细解析硬件选型、IP核参数设置及性能优化技巧,帮助开发者快速构建高效视频处理系统。

weixin_30800987的博客 428

python基础学习笔记

​​​​​ 在写之前说一些题外话,首先呢,我是一个新人,刚开始学习不久,如果有不对的地方还希望大家能够指正。其次呢,这是我写的第一个博客,有经验不足的地方大家请见谅。当然,如果可以的话也可以给我 一些建议哦,先谢过大家啦!最后,这篇博客主要是写来给自己学习的,刚刚学了一些python的基础感觉还有很多不懂,把一些知识记录下来方便以后复习,所以呢,这篇博客最适合刚开始学习python的朋友啦。好啦,废话就说到这里,下面开始主要内容啦!​​​ 一、程序的运行 要运行程序首先要下载一个python...

沉在海里的鱼的博客 3059

量化交易如何利用涨停板策略收割散户

量化交易通过算法筛选特定特征的股票,在早盘建立底仓后,利用大单拉升制造抢筹假象,吸引散户跟风买入。这种策略利用了散户的认知偏差,如锚定效应和从众心理,导致次日低开闷杀。从技术实现来看,量化策略通过控制买入量、隐藏真实意图等手段,精准执行隔日砸策略。对于短线交易者而言,理解量化资金的运作逻辑和识别危险涨停板的特征至关重要,这包括观察封板时间、盘口挂单、量价关系等多维度数据。在算法主导的市场中,散户需要升级交易工具和策略,从预测走势转向应对走势,才能避免成为量化策略的牺牲品。

weixin_33046983的博客 276

【ESP 保姆级教程】第三方库篇 ——TimeLib库,一个非常Nice的时间库,结合第三方进行校正时间

Time,这是一个为Arduino提供时间支持的库。 这个库的例子中会教会我们多种方式去获取时间: - 一个`RTC`时钟 - 网络`NTP`时间 - `GPS`时间

单片机菜鸟哥的博客 3671

Python系统学习流程图,超详细

https://www.toutiao.com/a6536174274070184462/?tt_from=mobile_qq&amp;utm_campaign=client_share&amp;timestamp=1521988685&amp;app=news_article&amp;utm_source=mobile_qq&amp;iid=28686537010&amp;utm_medium=...

qq_15021091的专栏 2万+

vue2/3 - 详细实现内网使用离线高德地图功能,在vue中无需网络离线使用高德地图相关功能,高德地图如何离线加载详细教程(内网部署及使用),提供最新完整的瓦片资源下载及相关工具(示例代码,一键复制

vue,vue2,vue3,高德地图,离线使用高德地图,高德地图瓦片官方下载,vue内网使用高德地图离线无网络,断网情况下使用高德地图,vue离线高德地图教程,如何实现内网部署高德地图,无需联网离线使用,vue+ts实现离线高德地图 内网离线高德地图,如何在高德地图Vue项目中下载离线地图,高德离线地图加载不出来,高德地图离线使用不显示怎么办,怎么解决vue内网使用离线高德地图加载失败问题,vue实现离线地图+高德瓦片,vue引入高德离线地图,vue项目如何使用离线高德地图和自定义地图样式,高德离线地图的下

✅ 精选推荐文章 1万+

尚硅谷python培训时间

尚硅谷Python核心基础视频教程,系尚硅谷Python+人工智能学科历时多月,精心打磨而成。授课老师从业经验丰富,讲课由浅入深,贴近真实开发,紧紧围绕Python核心基础知识,系统讲解操作系统、Python环境搭建、Python的基本语法、类型和对象、流程控制、函数、函数式编程、面向对象、文件操作等内容。同学们学习本教程,可为今后从事人工智能方向的工作,打下坚固的基础。 课程: 那么如何获取本套视频呢,还是老样子, 尚硅谷公众号,回复"python"即可. C站(CSDN)能力...

weixin_63757190的博客 140

构建企业级AI税务顾问:优化税收策略与合规

本文深入探讨了构建企业级AI税务顾问的重要性及其在实际应用中的价值。通过分析当前税务领域的挑战和问题,本文详细介绍了AI税务顾问的基本原理、技术架构、核心功能以及实践应用。文章以逐步分析的方式,从背景介绍、核心概念与联系、算法原理讲解、系统分析与架构设计、项目实战到最佳实践与展望,系统性地展示了如何利用AI技术优化税收策略并确保税务合规。文章旨在为企业和税务从业者提供实用的指导,推动AI在税务领域的创新与发展。在当前全球经济一体化的背景下,企业面临着越来越复杂的税务环境。首先,税收法规的复杂性日益增加。

AI天才研究院 1149

星敏感器:卫星姿态测量的“星空导航仪”

在卫星、航天器和深空探测器的姿态控制系统中,星敏感器(Star Tracker) 是最精确的姿态测量设备之一。它通过识别恒星的位置,计算出航天器在惯性空间中的三轴姿态,精度可达 角秒级(arcsecond),是许多高精度任务(如遥感、天文观测、深空探测)的核心传感器。

ScilogyHunter的博客 3667

python基础语法合集-Python基础语法合集.zip

【实例简介】精心整理的Python基础语法合集,变量,循环,输入输出等等都有,主要是知道概念和怎么用的 如果打开文件后有文字变成符号的,先把字体改为宋体就正常了【实例截图】【核心代码】目录了解python51. 了解Python52. Python标识符53. Python中的保留字符54. Python的缩进与多行语句写法85. Python中的不换行与换行输出9Python变量类型1...

weixin_37988176的博客 484

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

呕心沥血总结的14张Python核心知识体系导图!

导图作者|ZOE@数林觅风ZOE是一名医学生,在自己博客分享了很多高质量的思维导图。本文中所列的14张思维导图,是17年作者开始学习Python时所记录的,希望对大家有所帮助。原文...

苏克的博客 607

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

learn python the hard way中文pdf_Learn Python 3 the Hard Way .pdf

关于PythonPython 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互...

weixin_42100129的博客 2431

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

万字长文Python面试题,建议先收藏

精心整理的 Python 相关的基础知识,用于面试,或者平时复习,都是很好的!废话不多说,直接开搞 由于文章过长,萝卜哥也贴心的把文章整理成了PDF文档,在文末查看获取方式 基础篇1. 为什么学习 Python2. 解释型和编译型语言的区别3. 简述下 Python 中的字符串、列表、元组和字典4. 简述上述数据类型的常用方法5. 简述 Python 中的字符串编码6.一行代码实现数值交换7. is 和 == 的区别8.Python 函数中的参数类型9.`*arg` 和 `**kwarg` 作用10.一行代

周萝卜的博客 648

Python教程马哥-60集全新完整版

Python教程马哥-60集全新完整版 【下载地址】Python教程马哥-60集全新完整版 这个Python教程资源专为运维人员和Python初学者设计,提供了一套完整的60集学习内容。教程由马哥教育精心打造,涵盖Python基础语法的各个方面,包括文件对象、OS模块、函数、面向对象编程等核心知识点。通过系统化的讲解和丰...

gitblog_06752的博客 578

Python学习资料整理简介:助力编程技能提升,系统学习Python

Python学习资料整理简介:助力编程技能提升,系统学习Python 去发现同类优质开源项目:https://gitcode.com/ 在当今数字化时代,Python作为一种易学、实用的编程语言,受到了众多开发者和学习者的青睐。今天,我们要推荐一个开源项目——Python学习资料整理简介,它为Python爱好者提供了一份系统、全面的学习资料汇总。 项目介绍 Python学习资料整理简介,这是一份涵...

gitblog_06749的博客 734

python视频教程下载-Python入门到精通视频教程下载[21课程全]

Python入门到精通视频教程初级共21节课python编程入门,针对0基础就python语言基础语法的各个点逐步讲解,由浅入深,通俗易懂,层层深入。提取码:python编程入门,针对0基础就python语言基础语法的各个点逐步讲解,由浅入深,通俗易懂,层层深入。课程亮点:1.对于编程0基础的同学或者想把python作为第二门编程语言的同学十分适合。2.生动形象,浅显易懂,清晰明了。3.针对基础语...

weixin_37988176的博客 152

华为把Python入门知识点整理成手册了,高清PDF开放下载

无论是学习任何一门语言,基础知识一定要扎实,基础功非常的重要,找一个有丰富编程经验的老师或者师兄带着你会少走很多弯路, 你的进步速度也会快很多,无论我们学习的目的是什么,不得不说Python真的是一门值得付出时间去学习的优秀编程语言。所以今天给大家带来的是字节大佬用了72小时整理出来的这本python入门知识背记手册,能保证在你成为python大牛之前,都离不开这本基础知识点啦。

m0_58477260的博客 641

玩十个游戏学会python,老师评价这是编程天才,教学十年没遇到过

这个人从未学过编程,但由于热衷于游戏,于是在玩了十个小游戏后,就学会了python编程,他的老师说,也许是因为他在这方面太有天赋吧!首先这十个游戏是来自某份教程,而且是那种在这份教程中,没有冗长枯燥的理论,一切都是以趣味为前提,一切都用游戏带python学习者深入其中,换句话说,那么这到底是什么游戏呢?这份教程,每个知识点,都对应了一个游戏,总共十个,而只要学会这十个知识点,python基础就基本上学完了()。...

m0_59163425的博客 778

Python基础语法视频教程全39集,历时1个多月终于更新完毕,需要的拿走!

我应该是在4月底5月初的时候,说我准备录制一个python的教学视频。 我坚持了一个多月,每天晚上9点准时更新一集,从未断过。 截止上上周,全部39集python基础语法系列更新完毕。 完整教程目录 免费视频教程!零基础学Python系列(1) - python简介 免费视频教程!零基础学Python系列(2) - 运行第一个python程序 免费视频教程!零基础学Python系列(附1) - 手把手教你搭建python开发学习环境 ...

非凡技术 1587

呕心沥血总结的14张思维导图,教你构建 Python核心知识体系(附高清下载)

导图作者|ZOE@数林觅风ZOE是一名医学生,在自己博客分享了很多高质量的思维导图。本文中所列的14张思维导图,是17年作者开始学习Python时所记录的,希望对大家有所帮助。原文:...

weixin_45727359的博客 403

我羞答答的写完了Python进阶的内容

Python 进阶教程也更新完了,说句心里话,在没有准备开始写 Python 入门系列之前,从来没有想过自己会把一门编程语言通过自己的方式整理下来,并且还分享出去。换做以前,定会羞答答的将...

小一的博客 137

阿里大佬珍藏的12张图解Python,令人茅塞顿开!

今天我为大家带来阿里大佬珍藏的12张图解Python,轻松学会python! 1 计算机基础 2 python语言基础 3 数值、字典、集合 4 标准类型补充 5 序列对象 6 字符串 7 条件、循环 8 模块 9 面向对象编程 10 文件对象 11 进阶 如何学好Python 若需要获取相关学习资料 1,转发+评论 2,私信回复“6”即可免费获取! ...

zihong523的博客 483

腾讯把Python入门知识点整理成手册了,高清PDF开放下载

无论是学习任何一门语言,基础知识一定要扎实,基础功非常的重要,找一个有丰富编程经验的老师或者师兄带着你会少走很多弯路, 你的进步速度也会快很多,无论我们学习的目的是什么,不得不说Python真的是一门值得付出时间去学习的优秀编程语言。所以今天给大家带来的是字节大佬用了72小时整理出来的这本python入门知识背记手册,能保证在你成为python大牛之前,都离不开这本基础知识点啦。

m0_59236602的博客 134
上一篇: selenium的8大元素定位法
下一篇: 性能测试1-基础知识与整体流程
Best陈维
博客等级 码龄13年 19粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值