1702_week6_面向对象编程

2023-05-16

全部学习汇总: GreyZhang/python_basic: My learning notes about python. (github.com)

放一下自己的联系方式,软件爱好者欢迎交流。

邮箱:greyzhang@126.com

微信:grey0612

我自己的编程可以说是从C语言起步,然后跳转到了脚本语言。虽说是现在C是我吃饭的家伙,但是现在的生活工作中脚本语言确实是给我带来了很大的收益。近段时间开始学习使用的Python给我的这种感觉特别强烈。

今天大致总结一下刚刚学习的Python面向对象编程。

面向对象,是现在的我既熟悉又陌生的一个术语。凭借肤浅的C编程技术在嵌入式行业混了两年,根深蒂固的一种思维方式是函数式的编程。这跟现在需要总结的面向对象的编程还是有很大的差异,说起来,直到现在接触Python将近一年的时间我对面向对象的编程还是很不熟悉。在我自己的生活与工作中,这种技术几乎没有使用过。

Python中,关于面向对象的知识点总结如下:

第一,优点

1,面向对象的思维方式其实在绝大多数的场合更贴近于我们本身具有的思维。

2,使用面向对象的编程方式可以把复杂的功能拆分,降低程序的复杂度。

3,面向对象的代码更加易于调试,相比之下的代码通常也会更加简洁。

4,更容易实现代码的重用。

第二,类

在Python中,面向对象的编程跟类(class)是分不开的。然而说到底,Python中的类本身也是一种对象。在Python中,所有的一切都可以看做是对象。而类包含属性和方法,其中属性可以让我联想到最初学习Python时所接触的各种数据以及数据类型,而方法则可以暂时联想到函数。简单的描述可以通过一个例子来说明,在此之前先看一下Python中类的定义方式:

class Coordinate(object):

...define attributes here...

下面来定义一个简单的类的对象:

其中,句点符号是用来访问一个对象的某个属性的。这样,__init__的方法就可以为Coordinate的对象床创建了两个属性x和y。

对于以上类的使用例子如下:

>>> ================================ RESTART ================================

>>>

>>> c = Coordinate(3,4)

>>> test = Coordinate(0,0)

>>> print c.x,test.x

3 0

从不同的教程中学习这部分的时候会看到很多种理解方式,其实,对我们来说比较重要的就是几点:第一,放心的使用,简单的类之间一般不会干涉;第二,不必要过分考虑资源的占用,Python有着比较好的垃圾回收机制;第三,注意引用的特别性。

如果尝试使用print输出创建的对象的信息,看到的其实是一个关于这个对象的描述信息:

>>> print c

<__main__.Coordinate object at 0x0000000002EDF908>

如果想输出部分我们想看到的属性,这时候需要创建__str__的方法。修改之前创建的类型如下:

调试结果如下:

>>> c = Coordinate(3,4)

>>> print c

<3,4>

上面修改的__init__以及__str__方法都是一种“内置”的方法,前后都有两个下划线是比较特殊的标记。想知道有哪些内置的方法,可以通过dir的内置函数。

>>> dir(c)

['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'x', 'y']

接下来创建一个新的方法,不属于内置方法的方法,修改代码如下:

测试:

>>> ================================ RESTART ================================

>>>

>>> c = Coordinate(3,4)

>>> print c.Sum()

7

在MIT的计算机课程“使用Python进行编程”的面向对象编程部分,关于类的讲解比较重要的信息就是这些。都是比较基础的,接下来或许应该有继承等其他的更加高级点的用法,后面继续做相关的整理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1702_week6_面向对象编程 的相关文章

随机推荐

  • 基于K近邻法的手写数字图像识别

    数字图像处理课程论文 题目 xff1a 数字图像识别 摘要 模式识别 PatternRecognition 是一项借助计算机 xff0c 就人类对外部世界某一特定环境中的客体 过程和现象的识别功能 xff08 包括视觉 听觉 触觉 判断等
  • Ubuntu 16.04升级内核到20.04

    一 首先需要从16 04 18 04 sudo mv etc apt sources list sudo mv etc apt sources list d list 1 改变源 xff08 粘贴下面这一段到终端并运行 xff09 cat
  • 互斥和二进制信号量的使用

    1 二进制信号量 semBCreate SEM Q FIFO SEM Q PRIORITY SEM EMPTY SEM FULL 有两个作用 xff1a xff08 1 xff09 任务间的互斥 xff0d xff0d 同一个任务获取和释放
  • 【C++】关于以下划线开头的变量名

    系 统头文件里将宏名 变量名 内部函数名用 34 34 开 头就是为了避免与用户用的名字冲突 因为当你 xff03 include 系 统头文件时 xff0c 这些文件里的名字都有了定义 xff0c 如果与你用的名字冲突 xff0c 就可能
  • 1689_MATLAB处理Excel文件提升篇

    全部学习汇总 xff1a GreyZhang g matlab MATLAB once used to be my daily tool After many years when I go back and read my old lea
  • 1690_Python中的复数数据类型

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 之前总结的知识中设计的数据类型有整形 浮点 字符串等 xff0c 这些类型表示的都是
  • linux 命令终端提示符显示-bash-4.1#

    昨晚对服务器自带Python升级后 xff0c 终端就不是以前root 64 主机 43 路径的显示方式了 查了很多资料 xff0c 有人说是root目录下 bash profile和 bash两个文件缺失 xff0c 但我的这两个文件是存
  • 1691_python学习笔记之week3_递归

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 最初接触递归的时候觉得这个有点不好理解 xff0c 怎么能够有这种思维方式 xff1
  • 1692_Git版本控制管理 21-40

    全部学习汇总 xff1a GreyZhang toolbox 常用的工具使用查询 xff0c 非教程 xff0c 仅作为自我参考 xff01 github com 我曾经多次在工作中接触软件版本管理 xff0c 接触过多个公司的软件版本管理
  • 1693_Python处理Excel学习小结 21-41

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 说起来这是我来到北京之后开始接触的第一个新技术 xff0c 我对此痴迷 xff0c
  • 1694_week1_MIT使用Python编程学习手记1

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 首先说明一下 xff0c 这部分信息的整理只是我个人的理解 由于自己的知识功底以及英
  • 1695_week2_算法与函数(MIT使用Python编程学习手记)

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 首先说明一下 xff0c 这部分信息的整理只是我个人的理解 由于自己的知识功底以及英
  • 1696_C语言中变量默认初始化初值探究测试

    全部学习汇总 xff1a GreyZhang c basic little bits of c github com 欢迎路过的YUAN类朋友相互沟通交流 xff0c 也欢迎各位随时指点指正 以下是我的联系方式 xff1a 微信 xff1a
  • 1697_python编程_assertions and exceptions

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 这部分主要关于程序中的异常类型以及处理方式 exception 常见的异常类型 ex
  • 1698_python编程_测试与debug

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 学习了一下这一周的课程 xff0c 讲的主要是测试以及Bug调试方面的东西 在之前我
  • 1699_simulink代码生成配置初级方案

    全部学习汇总 xff1a GreyZhang g matlab MATLAB once used to be my daily tool After many years when I go back and read my old lea
  • 1700_VIM代码自动补齐配置

    全部学习汇总 xff1a GreyZhang editors skills Summary for some common editor skills I used github com 欢迎路过的YUAN类同胞相互交流 xff0c 指点指
  • Python2 备份网站目录并上传百度网盘

    最近用WordPress建了个个人博客 xff0c 本着数据无价的原则编写了本脚本对数据库和网址目录进行备份并上传到百度网盘里 话不多说 xff0c 下面就该Python脚本的程序依赖 代码说明及使用方法进行叙述 一 程序依赖 1 安装Py
  • 1701_week5_效率与搜索

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 这一周的课程很早就学完了 xff0c 碰上自己昼夜加班周末不休的时段一直也没有整理学
  • 1702_week6_面向对象编程

    全部学习汇总 xff1a GreyZhang python basic My learning notes about python github com 放一下自己的联系方式 xff0c 软件爱好者欢迎交流 邮箱 xff1a greyzh