python类对象点处折行_史上最全的Python面向对象知识点疏理(对象是类的实例)
(对象是类的实例)
面向对象技术简介
类:用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。class
类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖,也称为方法的重写。
实例变量:定义在方法中的变量,只作用于当前实例的类。
继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。创建类
a 变量是一个类变量,它的值将在这个类的所有实例之间共享。你可以在内部类或外部类使用 P 访问。
第一种方法__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法
self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
self代表类的实例,而非类
类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。
输入:
输出
从执行结果可以很明显的看出,self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类。
self 不是 python 关键字,我们把他换成 runoob 也是可以正常执行的:
创建实例对象
访问属性:可以使用点(.)来访问对象的属性。使用如下类的名称访问类变量:
Python内置类属性
__dict__ : 类的属性(包含一个字典,由类的数据属性组成)
__doc__ :类的文档字符串
__name__: 类名
__module__: 类定义所在的模块(类的全名是"__main__.className",如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
__bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)
Python内置类属性调用实例如下:
python对象销毁(垃圾回收)
Python 使用了引用计数这一简单技术来跟踪和回收垃圾。
在 Python 内部记录着所有使用中的对象各有多少引用。
一个内部跟踪变量,称为一个引用计数器。
当对象被创建时, 就创建了一个引用计数, 当这个对象不再需要时, 也就是说, 这个对象的引用计数变为0 时, 它被垃圾回收。但是回收不是"立即"的, 由解释器在适当的时机,将垃圾对象占用的内存空间回收。
垃圾回收机制不仅针对引用计数为0的对象,同样也可以处理循环引用的情况。循环引用指的是,两个对象相互引用,但是没有其他变量引用他们。这种情况 下,仅使用引用计数是不够的。Python 的垃圾收集器实际上是一个引用计数器和一个循环垃圾收集器。作为引用计数的补充, 垃圾收集器也会留心被分配的总量很大(及未通过引用计数销毁的那些)的对象。 在这种情况下, 解释器会暂停下来, 试图清理所有未引用的循环。
类的继承
面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。
需要注意的地方:继承语法class 派生类名(基类名): 基类名写在括号里,基本类是在类定义的时候,在元组之中指明的。
在python中继承中的一些特点:
1:在继承中基类的构造(__init__()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。
2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self参数
3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。
如果在继承元组中列了一个以上的类,那么它就被称作"多重继承" 。
输入
输出:
也可以继承多个类:调用方法重写
输入:
输出:
类属性与方法
类的私有属性
__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时self.__private_attrs。
类的方法
在类的内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数
类的私有方法
__private_method:两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用self.__private_methods
输入:
输出:
单下划线、双下划线、头尾双下划线说明:
__foo__: 定义的是特列方法,类似__init__()之类的。
_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于from module import *
__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。
python类对象点处折行_史上最全的Python面向对象知识点疏理(对象是类的实例)相关推荐
- python高分书籍推荐_史上最全的Python书排行榜|你想知道的都在这里
原标题:史上最全的Python书排行榜|你想知道的都在这里 感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答.求职一站式搞定 ...
- python 完全面向对象_史上最全的Python面向对象知识点疏理
原标题:史上最全的Python面向对象知识点疏理 面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例.class 类变量:类变 ...
- python最全知识点_史上最全的Python知识点整理之基本语法
一.程序的格式框架 1.缩进 缩进是指每行语句前的空白区域,用来表示Python程序间的包含和层次关系. 一般语句不需要缩进,顶行书写且不留空白. 当表示分支.循环.函数.类等含义,在if,while ...
- python最全知识点_史上最全的Python面向对象知识点疏理
51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦! 面向对象技巧简介 类: 用来描述具有雷同的属性和办法的对象的集合.它定义了该集合中每个对象所共有的属性和办法 ...
- python有什么好玩的书_史上最全的Python书排行榜|你想知道的都在这里
这是菜鸟学Python的第99篇原创文章 阅读本文大概需要3分钟 引用 学Python这么久了,回首想想自己看过的Python书也不少,到底哪本书最牛,哪本书最火呢,哪个出版社出版的Python最多的 ...
- python期末知识点_史上最全的Python知识点整理之基本语法
一.程序的格式框架 1.缩进 缩进是指每行语句前的空白区域,用来表示Python程序间的包含和层次关系. 一般语句不需要缩进,顶行书写且不留空白. 当表示分支.循环.函数.类等含义,在if,while ...
- python各种包安装顺序_史上最全的Python包管理工具:Anaconda教程
事实上Anaconda 和 Jupyter notebook已成为数据分析的标准环境. 简单来说,Anaconda是包管理器和环境管理器,Jupyter notebook 可以将数据分析的代码.图像和 ...
- python学生管理系统用列表_史上最全面的python学生管理系统教程(二)
序言 这篇我们来讲该软件的数据保存方式,由于想到要简便快捷,所以我采用了sqlite3数据库,该数据库操作简单方便,而且易于管理,并且SQLite是一个进程内的库,实现了自给自足的.无服务器的.零配置 ...
- python优化算法工具包_这可能是史上最全的 Python 算法集(建议收藏)
原标题:这可能是史上最全的 Python 算法集(建议收藏) 导读:本文是一些机器人算法(特别是自动导航算法)的Python代码合集.其主要特点有以下三点: 选择了在实践中广泛应用的算法: 依赖最少: ...
最新文章
- 目标检测--SSD: Single Shot MultiBox Detector
- linux sh脚本 while,Linux shell脚本使用while循环执行ssh的注意事项
- [转]脏读,不可重复读,幻读的理解
- test1 3-15 模拟赛1
- (Docker实战) 第4篇:Centos7 拉取和部署Redis
- Java 内存模型(零)
- ×××S 2012 高级图表类型 -- 小面积扇形处理
- centos 升级 glibc和glibcxxx ,解决error: Failed dependencies等问题
- 每天一个实用小技巧!巧妙利用Mac标记,分类同类文件
- 10. jQuery Callback 函数
- 安装oracle提示javaw,为什么oracle 9i 安装时,setup exe javaw exe进程消失
- Java web前端——HTML常用标签
- Git 团队协作常用术语 WIP PTAL CC LGTM
- Istio Security - Istio安全框架
- GCN与GAT之间的重要联系和区别
- mmap和mmap64
- iTop-4412_开发板Linux编程之TFTP服务器学习笔记
- ibm x201 怎么清理内部_ThinkPad X201拆解,联想Thinkpad X201拆机图解
- 说说自己喜欢的漫画吧
- Vert.x(vertx) 简明介绍
热门文章
- spark官方文档_这些未在 Spark SQL 文档中说明的优化措施,你知道吗?
- python定时下载链接_python定时下载FTP指定文件
- mysql5.6 优点_MySQL5.6复制:GTID的优点和限制(第一部分)_MySQL
- linux 离线安装中文字库,centos7 离线安装字体fontconfig
- 搬家后第一次缴电费,查询客户编号的解决办法
- 正则表达式常用符号所代表的含义
- 教你玩转CSS 媒体类型
- java定义list_我的Java Web之路59 - Java中的泛型
- React后台管理系统-首页Home组件
- 新国标电动自行车目录库