python3 面向对象_Python3 面向对象

Python和C++都是一门面向对象的语言,

面向对象技术简介

类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。比如 f = file()##创建了一个类(file())的对象f

类变量:类变量在整个实例的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。

方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

实例变量:定义在方法中的变量,只作用于当前实例的类。

继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。

实例化:创建一个类的实例,类的具体对象。

方法:类中定义的函数。

对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

定义类

1032486-20180329103105775-1883879992.png

实际上,创建一个类之后,可以通过类名访问其属性。

类对象

类对象支持两种操作:属性引用和实例化。

属性引用使用和 Python 中所有的属性引用一样的标准语法:f.name。

类对象创建后,类命名空间中所有的命名都是有效属性名。在类里面定义的属性叫类属性,在实例里面定义的属性叫实例属性。

1032486-20180329103622407-1680705501.png

实际上我们在定义类的时候会写一个初始化状态的方法,会定义一个名为 __init__() 的特殊方法,__init__() 方法可以有参数,参数通过 __init__() 传递到类的实例化操作上

1032486-20180329104012055-1458391571.png

然后我们创建一个对象。>>> x = myclass(),输出结果为:

>>> x.i

12345

下面例子是带有参数的

1032486-20180329104359088-538199405.png

self代表类的实例,而非类

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

从上面几张截图可以看到,self 代表的是类的实例,代表当前对象的地址,也即是self指向了x这个对象,那么下面引用其他属性都是可以的。

self 不是 python 关键字,我们把他换成 其他任何变量名字 也是可以正常执行的

类的属性

类的方法

在类地内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例(对象)。

在一个类的方法内部,如果使用__init__(self)定义了属性,那么在下面的方法里都是可以引用的,与类外单纯定义一个函数使用全局变量一个道理。

类的方法可以通过类的名字调用,还可以通过创建的对象去调这个类方法

1032486-20180330090626799-833316058.png

继承

支持类的继承,多个类继承

1032486-20180330090815851-308780254.png

方法重写

如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法

1032486-20180330091503758-1136125625.png

类的私有属性

__private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。

类的方法

在类地内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数,self 代表的是类的实例。

self 的名字并不是规定死的,也可以使用 this,但是最好还是按照约定是用 self。

类的私有方法

__private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用 ,不能在类地外部调用。self.__private_methods。

与类的私有属性一样,在实例中def xxx定义方法的时候,__xxx(self),即可。

1032486-20180330092151608-1383520817.png

1032486-20180330092331474-633758164.png

静态方法

1032486-20180330093945377-293917666.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

口腔ct重建服务器原理,牙科CT是什么?牙科CT的原理及优势介绍

原标题:牙科CT是什么?牙科CT的原理及优势介绍牙科CT是什么?牙科CT,又称口腔CT,是一种新型牙科类仪器,它可以从三维角度对口腔部组织情况进行扫描检查。牙科CT在业界被誉为神奇的“慧眼”,它犹如…

机器学习奠基人Michael Jordan:下代技术是融合经济学,解读2项重要进展

来源: 北京智源人工智能研究院2019年11月1日北京智源大会全体大会及闭幕式上,被誉为“机器学习之父”的加州大学伯克利教授、智源研究院学术顾问委员会委员 Michael I.Jordan 做了题为《决策与情境:基于梯度的博弈均衡求解方法》(…

matlab 带有下标的赋值维度不匹配_远见另类资产管理体系下的核心系统搭建

另类资产管理体系下的信息化建设,或许是小众领域中的更小众话题,但仍值得讨论。很多基金公司、投资公司或资产管理公司都搭建了各种大大小小的应用系统,如OA系统、财务系统、CRM系统等,但对于上系统的价值,不仅很难量化…

cfree运行程序错误的原因_Python入门教程 | 第 8 章 错误、调试和测试

第八章 错误、调试和测试在程序运行过程中,总会遇到各种各样的错误。有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。有的错误是用户输入造成的,比…

我的世界服务器物品id错误,我的世界错误代码,怎么弄

我的世界错误代码,怎么弄0xu1125yuan2017.07.24浏览323次分享举报1.Minecraft:[16:05:37][Clientthread/FATAL][NotEnoughItemsFingerprintVerification]:ThefingerprintformodNotEnoughItemsisinvalid!Expected:f1850c39b2516232a2108a7bd84d1cb5df9... 1.Minecraf…

今日头条CEO朱文佳:新一代搜索引擎已经来了

来源:今日头条11月27日,今日头条CEO朱文佳在36kr wise大会上谈及头条搜索。在他看来,要做好搜索,有三件事最重要。首先是技术,技术决定搜索的体验;其次是内容,内容是搜索的根本;最后…

串口打印怎么使用】_爱普生打印机怎么使用 爱普生打印机使用方法【详解】...

市面上的打印机品牌有很多,其中就有爱普生打印机,这个品牌的打印机是在上个世纪的四十年代成立的,并且爱普生这款打印机逐渐深入我们的生活,一般我们很多都会使用爱普生打印机来打印资料或者是下载各种工作材料,那么你…

日益谨慎的谷歌AI,会在自我限制中越走越慢吗?

来源:wired为了防止技术被滥用,谷歌对新推出的人脸识别服务进行了限制,但这种限制有时候反而会让竞争对手抢得市场先机。谷歌之所以成为今天的谷歌,是因为它不断创造先进的新技术,并将这些技术向所有人开放。大型企业和…

用jsp实现右导航窗格_手机导航如何投放到汽车中控屏?建议用这2种办法,轻松实现同屏...

对于我们许多的司机来说,虽然车上有车载导航,但是出于个人习惯,我们很多人还是习惯用手机导航,由于手机导航它的定位较为精准,而且使用起来比较方便,所以说更受司机朋友的青睐,但是有一个毛病就…

MFC编程入门之十五(对话框:一般属性页对话框的创建及显示)

属性页对话框包括向导对话框和一般属性页对话框两类,上一节讲了如何创建并显示向导对话框,本节将继续介绍一般属性页对话框的创建和显示。 实际上,一般属性页对话框的创建和显示过程和向导对话框是很类似的。将上一节中的向导对话框进行少量修…

javascript 等待指定时间_javascript的单线程和任务队列

一、JavaScript为什么设计为单线程&#xff1f;JavaScript语言的一大特点就是单线程&#xff0c;换言之就是同一个时间只能做一件事。其他任务都必须在后面排队等待。for(var i 0; i < 5; i) {console.log(i); } console.log(end);上面的代码&#xff0c;只有for循环执行完…

2019年云计算行业深度报告

来源&#xff1a;西部证券 导语 根据 Gartner 数据 2018 年全球公有云市场规模达到 1392 亿美元&#xff0c;2015 年至 2018 年复合增长 28.24%&#xff0c;预计 2021 年规模将达到 2461 亿美元。 一、云计算蓬勃发展&#xff0c;驱动数据中心基础设施采购 1.1 云计算蓬勃发展&…

dataframe 一列的不同值_pandas | 详解DataFrame中的apply与applymap方法

点击上方蓝字&#xff0c;关注并星标&#xff0c;和我一起学技术。今天是pandas数据处理专题的第5篇文章&#xff0c;我们来聊聊pandas的一些高级运算。在上一篇文章当中&#xff0c;我们介绍了panads的一些计算方法&#xff0c;比如两个dataframe的四则运算&#xff0c;以及da…

https访问http加载不出图片_前端解决第三方图片防盗链的办法

作者&#xff1a;biaochenxuying转发链接&#xff1a;https://github.com/biaochenxuying/blog/issues/31问题笔者网站的图片都是上传到第三方网站上的&#xff0c;比如 简书、掘金、七牛云上的&#xff0c;但是最近简书和掘金都开启了 防盗链&#xff0c;防止其他网站访问他们…

java spring boot 注解验证_如何理解Java原生注解和Spring 各种注解?

作者&#xff1a;digdeep.cnblogs.com/digdeep/p/4525567.html导引Spring中的注解大概可以分为两大类&#xff1a;spring的bean容器相关的注解&#xff0c;或者说bean工厂相关的注解&#xff1b;springmvc相关的注解。spring的bean容器相关的注解有&#xff1a;Required&#x…

数据驱动的未来城市八大趋势

来源&#xff1a;微信公众号腾讯研究院 趋势一 更可持续 城市的发展要为整个人类文明的永续传承和为后人能享受到更高质量的生活为目标。一个更加智慧的城市&#xff0c;势必具有着更加可持续发展的能力。新科技为城市的核心系统的设施提供了更为智能、高效率的调配方案&#x…

浪潮服务器bios怎么找回密码,服务器BIOS密码丢失解决方法

先升级iBMC&#xff0c;再升级bios&#xff0c;可以将bios密码重置。此案例以RH2288为例&#xff1a;1、登录到iBMC web界面&#xff0c;点击系统设置里的固件升级&#xff0c;将BMC升级包image.hpm上传后&#xff0c;点击升级&#xff0c;因为BMC主备两个镜像&#xff0c;需要…

看了中国与别国的科研差距后,究竟什么才是真正的科研精神?

来源&#xff1a;募格学术 目前&#xff0c;中国的科研环境越来越好&#xff0c;单就硬件上来讲&#xff0c;与欧美发达国家没有很大差别。2014年&#xff0c;中国研发投入13400亿元&#xff0c;占GPD2.1%&#xff0c;这个比例超过了欧盟。然而&#xff0c;引人深思的是中国缺席…

numpy 转置_Numpy基础:数组转置和轴对换

转置&#xff08;transpose&#xff09;是重塑的一种特殊形式&#xff0c;它返回的是源数据的视图&#xff08;不会进行任何复制操作&#xff09;。数组不仅有transpose方法&#xff0c;还有一个特殊的T属性。In[70]:arrnp.arange(15).reshape((3,5))In[71]:arrOut[71]: array(…

word2016 图片去底灰_看来看去,还是高级灰最耐看,喜欢现代简约风的你,选它准不会错...

经常看到有人问&#xff1a;不想要大白墙&#xff0c;给家里装点什么颜色好&#xff1f;这个问题其实没有固定答案&#xff0c;毕竟对于色彩的感受&#xff0c;每个人都不一样。没有固定答案不代表没有选择&#xff0c;好看又百搭的色彩有很多&#xff0c;但是能做到经典与时尚…