(对象是类的实例)

面向对象技术简介

类:用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。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面向对象知识点疏理(对象是类的实例)相关推荐

  1. python高分书籍推荐_史上最全的Python书排行榜|你想知道的都在这里

    原标题:史上最全的Python书排行榜|你想知道的都在这里 感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答.求职一站式搞定 ...

  2. python 完全面向对象_史上最全的Python面向对象知识点疏理

    原标题:史上最全的Python面向对象知识点疏理 面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例.class 类变量:类变 ...

  3. python最全知识点_史上最全的Python知识点整理之基本语法

    一.程序的格式框架 1.缩进 缩进是指每行语句前的空白区域,用来表示Python程序间的包含和层次关系. 一般语句不需要缩进,顶行书写且不留空白. 当表示分支.循环.函数.类等含义,在if,while ...

  4. python最全知识点_史上最全的Python面向对象知识点疏理

    51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦! 面向对象技巧简介 类: 用来描述具有雷同的属性和办法的对象的集合.它定义了该集合中每个对象所共有的属性和办法 ...

  5. python有什么好玩的书_史上最全的Python书排行榜|你想知道的都在这里

    这是菜鸟学Python的第99篇原创文章 阅读本文大概需要3分钟 引用 学Python这么久了,回首想想自己看过的Python书也不少,到底哪本书最牛,哪本书最火呢,哪个出版社出版的Python最多的 ...

  6. python期末知识点_史上最全的Python知识点整理之基本语法

    一.程序的格式框架 1.缩进 缩进是指每行语句前的空白区域,用来表示Python程序间的包含和层次关系. 一般语句不需要缩进,顶行书写且不留空白. 当表示分支.循环.函数.类等含义,在if,while ...

  7. python各种包安装顺序_史上最全的Python包管理工具:Anaconda教程

    事实上Anaconda 和 Jupyter notebook已成为数据分析的标准环境. 简单来说,Anaconda是包管理器和环境管理器,Jupyter notebook 可以将数据分析的代码.图像和 ...

  8. python学生管理系统用列表_史上最全面的python学生管理系统教程(二)

    序言 这篇我们来讲该软件的数据保存方式,由于想到要简便快捷,所以我采用了sqlite3数据库,该数据库操作简单方便,而且易于管理,并且SQLite是一个进程内的库,实现了自给自足的.无服务器的.零配置 ...

  9. python优化算法工具包_这可能是史上最全的 Python 算法集(建议收藏)

    原标题:这可能是史上最全的 Python 算法集(建议收藏) 导读:本文是一些机器人算法(特别是自动导航算法)的Python代码合集.其主要特点有以下三点: 选择了在实践中广泛应用的算法: 依赖最少: ...

最新文章

  1. 目标检测--SSD: Single Shot MultiBox Detector
  2. linux sh脚本 while,Linux shell脚本使用while循环执行ssh的注意事项
  3. [转]脏读,不可重复读,幻读的理解
  4. test1 3-15 模拟赛1
  5. (Docker实战) 第4篇:Centos7 拉取和部署Redis
  6. Java 内存模型(零)
  7. ×××S 2012 高级图表类型 -- 小面积扇形处理
  8. centos 升级 glibc和glibcxxx ,解决error: Failed dependencies等问题
  9. 每天一个实用小技巧!巧妙利用Mac标记,分类同类文件
  10. 10. jQuery Callback 函数
  11. 安装oracle提示javaw,为什么oracle 9i 安装时,setup exe javaw exe进程消失
  12. Java web前端——HTML常用标签
  13. Git 团队协作常用术语 WIP PTAL CC LGTM
  14. Istio Security - Istio安全框架
  15. GCN与GAT之间的重要联系和区别
  16. mmap和mmap64
  17. iTop-4412_开发板Linux编程之TFTP服务器学习笔记
  18. ibm x201 怎么清理内部_ThinkPad X201拆解,联想Thinkpad X201拆机图解
  19. 说说自己喜欢的漫画吧
  20. Vert.x(vertx) 简明介绍

热门文章

  1. spark官方文档_这些未在 Spark SQL 文档中说明的优化措施,你知道吗?
  2. python定时下载链接_python定时下载FTP指定文件
  3. mysql5.6 优点_MySQL5.6复制:GTID的优点和限制(第一部分)_MySQL
  4. linux 离线安装中文字库,centos7 离线安装字体fontconfig
  5. 搬家后第一次缴电费,查询客户编号的解决办法
  6. 正则表达式常用符号所代表的含义
  7. 教你玩转CSS 媒体类型
  8. java定义list_我的Java Web之路59 - Java中的泛型
  9. React后台管理系统-首页Home组件
  10. 新国标电动自行车目录库