说在前面: Stage1—Stage4简单介绍一下Python语法,Stage5开始用python实现一些实际应用,语法的东西到处可以查看到,学习一门程序语言的最终目的是应用,而不是学习语法,语法本事其实很简单,本系列希望通过一个个的实例来了解和学习Python。


理解面向对象编程

万事万物皆对象

我们从窗户向外望去:
每棵树:每一课树都可以看成一个对象。
路上每个人:每一个人也可以看成一个对象。
每个人上班的事件: 可以看成一个对象。

类和对象

类则是从某一部分对象中抽象出来的一个群体,这些群体具有某些共同的特征,我们可以根据我们所需的某几个特征抽象出我们自己想要的类。

每个人都是对象,我们可以抽象出来人的共同特征,就像我们给自然界的物质分类一样(如何分类?根据特征分类)。

每个人上班的事件是对象,我们可以抽象出来上班,上班和上课就是两个类。

创建Python中的类和对象

创建类

class Person:#特殊方法,构造函数,创建这个类的时候会首先调用def __init__(self, name, age):self.name = nameself.age = age#定义一个方法,显示人的信息def displyPersonInfor(self):print("name:", self.name, ",  age:", self.age)

创建对象(对象就是类的具体实例)

person = Person("xiaoming", 22)

访问属性及方法

person.displyPersonInfor()  #访问类的成员方法print(person.name)          #访问类的属性
print(person.age)

python对象销毁(垃圾回收)

析构函数 deldel在对象销毁的时候被调用,当对象不再被使用时,del方法运行:

class Person:#特殊方法,构造函数,创建这个类的时候会首先调用def __init__(self, name, age):self.name = nameself.age = age#定义一个方法,显示人的信息def displyPersonInfor(self):print("name:", self.name, ",  age:", self.age)#析构函数,对象销毁的时候调用def __del__(self):print(self.__class__.__name__ + "销毁")xiaoming = Person("xiaoming", 22)
xiaoming.displyPersonInfor()  #访问类的成员方法xiaoqiang = Person("xiaoqiang", 25)
xiaoqiang.displyPersonInfor()del xiaoming
del xiaoqiang

类的继承

面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。

继承语法 class 派生类名(基类名)://… 基类名写作括号里,基本类是在类定义的时候,在元组之中指明的。

class Person:#特殊方法,构造函数,创建这个类的时候会首先调用def __init__(self, name, age):self.name = nameself.age = age#定义一个方法,显示人的信息def displyPersonInfor(self):print("name:", self.name, ",  age:", self.age)#析构函数,对象销毁的时候调用def __del__(self):print(self.__class__.__name__ + "销毁")class Student:def __init__(self, name, age, grade):Person.__init__(self, name, age)self.grade = gradedef displyPersonInfor(self):print("i am a student, my name is " + self.name)def __del__(self):print("student析构函数调用")xiaoming = Person("xiaoming", 22)
xiaoming.displyPersonInfor()  #访问类的成员方法xiaoqiang = Student("xiaoqiang", 25, 3)
xiaoqiang.displyPersonInfor()del xiaoming
del xiaoqiang

转载于:https://www.cnblogs.com/lanzhi/p/6468436.html

Stage4--Python面向对象相关推荐

  1. python面向对象的优点_Python面向对象编程——总结面向对象的优点

    Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...

  2. 这可能是Python面向对象编程的最佳实践

    作者 | 崔庆才 来源 | 进击的Coder(ID:FightingCoder) Python 是支持面向对象的,很多情况下使用面向对象编程会使得代码更加容易扩展,并且可维护性更高,但是如果你写的多了 ...

  3. 第八课.Python面向对象(二)

    类的继承和多态 继承和多态与函数有共同的目的,都是为了减少代码的冗余,提高复用的效率: 根据"Python面向对象(一)"的笔记,我现在定义一个Cinema类: #父类 class ...

  4. Python面向对象编程:类继承和其衍生术语

    Python面向对象编程03:类继承和其衍生术语 前面我们讲到过正则表达式字符等,上一篇分享了面向对象编程和类的结构,最后稍微提到了继承. Python面向对象编程:深度认识类class_ Pytho ...

  5. 《Python面向对象编程指南》——1.2 基类中的__init__()方法

    本节书摘来自异步社区<Python面向对象编程指南>一书中的第1章,第1.2节,作者[美]Steven F. Lott, 张心韬 兰亮 译,更多章节内容可以访问云栖社区"异步社区 ...

  6. Python 面向对象 基础

    编程范式概述: 面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实 ...

  7. python面向对象类属性_python面向对象之类属性和类方法案例分析

    本文实例讲述了python面向对象之类属性和类方法.分享给大家供大家参考,具体如下: 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 -- 实例 使用面相对象开发, ...

  8. 关于python面向对象编程中、下列说法中_关于Python面向对象编程的知识点总结

    前言 如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程. 接下来我们 ...

  9. python对象编程例子-这是我见过最详细的Python面向对象编程!建议收藏!

    原标题:这是我见过最详细的Python面向对象编程!建议收藏! 面向对象编程和函数式编程(面向过程编程)都是程序设计的方法,不过稍有区别. 面向过程编程: 1. 导入各种外部库 2. 设计各种全局变量 ...

  10. python面向对象编程的优点-Python面向对象编程——总结面向对象的优点

    Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...

最新文章

  1. PyCharm去掉满屏的波浪线
  2. Python Django 多表设计OneToOneField/ManyToManyField/ForeignKey
  3. 【Android】Apk安装和删除
  4. ArcGIS Desktop新建postgresql版sde(10.4.1)的连接
  5. 【Java】不使用比较运算符构造max()和min()
  6. (89)FPGA除法器设计
  7. PHP 五大运行模式
  8. 传智播客c/c++公开课学习笔记--Linux网络流媒体服务器的核心代码揭秘
  9. 前端js日期时间格式转换
  10. Rails开始遇到的一个端口占用问题的解决方法
  11. windows守护进程工具_Linux进程管理
  12. 两个类似的ViewModel一个可以重写事件,另一个不能重写事件,是哪里出了错。...
  13. 精美的拟态个人主页源码
  14. VMware Cloud Director 10.3 发布(下载) - 云计算调配和管理平台
  15. php智能电视如何安装直播软件,海信 LED 55EC520UA 怎么安装第三方软件看直播?教你安装方法...
  16. 北通G3游戏手柄开箱体验,原来手游高手都是这么成就的
  17. 如何查看两个word文档的不同之处
  18. MBP清除NVRAM和PRAM
  19. 图像处理中ct图的通道是多少_CT图像后处理技术
  20. 软件构建中的设计(二)

热门文章

  1. 新手探索NLP(十五)——终章
  2. 新手探索NLP(十二)——文本聚类
  3. vue-router的基本使用
  4. 条件语句,while循环语句:完整的温度转换程序
  5. PhantomJS 基础及示例
  6. 0.1 hint crack
  7. 简单的apache URL重写
  8. 《LeetCode力扣练习》第4题 C语言版 (做出来就行,别问我效率。。。。)
  9. R语言报错:Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : n行没有x元素
  10. R语言如何画个性化词云图