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是必须修复的。有的错误是用户输入造成的,比…

python更新后yum问题

python更新后yum问题 How to switch between Python versions on Fedora Linux Currently, the default python version on Fedora Linux is Python 2. Later Fedora Linux release 22 will ship with the Python 3 as a default version. In this config you will learn how t…

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

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

友友球捕获率_神奇宝贝球内部秘密公开!大师球原来是这样达到100%捕获率的...

要想获得神奇宝贝,首先就要用精灵球,精灵球的作用是捕捉或者携带宝可梦,不同种类的精灵球拥有不同的特殊效果。一名训练家最多只能携带6枚装有宝可梦的精灵球,空的精灵球则没有携带数量的限制。目前为止,已经有27种不同…

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

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

javascript事件监听与事件委托

事件监听与事件委托 在js中,常用到element.addEventListener()来进行事件的监听。但是当页面中存在大量需要绑定事件的元素时,这种方式可能会带来性能影响。此时,我们可以用事件委托的方式来进行事件的监听。 每个事件都经历三个阶段 捕获到达…

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

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

中科院大学计算机研究生考试大纲,中国科学院大学《计算机原理》2019年硕士研究生入学考试大纲...

(二)计算机组成原理 (50分)1、计算机系统概论(1)计算机的分类。(2)计算机的硬件。(3)计算机的软件。(4)计算机系统的层次结构。2、 运算方法和运算器(1)数据与文字的表示方法。(2)定点加法、减法运算。(3)定点乘法运算。(4)定点除法运算。(5)定点运算器的组成。(6)浮点运算方法…

linux 测试cpu计算圆周率_Linux下测试CPU性能

一、安装stress服务2、解压tar xvf stress_1.0.1.orig.tar.gz3、进入解压目录执行./configure4、make5、make check6、make install7、make clean二、安装sysstat服务2、解压tar xvf sysstat-11.5.6.tar.gz3、进入解压目录执行./configure4、make & make install三、测试C…

日益谨慎的谷歌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…

JS电子文档链接

http://www.oschina.net/translate/learning-javascript-design-patterns 学用 JavaScript 设计模式 http://es6.ruanyifeng.com/                       ECMAScript 6 入门 https://github.com/justjavac/12-javascript-quirks …

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

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