第三十九节 面向对象编程Object Oriented Programming

  • 前言
  • 实践

前言

到目前为止我们都是函数式编程,也即将每一个功能块写为一个函数。其实还有一种更常用的编程方式被称为面向对象编程。什么叫对象?我们身边的所有东西都能被称为对象,例如手机,电脑,鼠标等等。每一个对象均包含其属性,也包含其方法。我们以鼠标为例,其属性包含颜色,大小,售价等等,而其方法包含左击,右击,双击,移动等等。通常,我们用变量表示属性,用函数表示方法,用类表示对象。

class 对象():def __init__(self, 属性1, 属性2, ..., 属性n):self.属性1 = 属性1......self.属性n = 属性ndef 方法1名称(self):方法1具体执行方法......def 方法n名称(self):方法n具体执行方法

我们来分析上述代码结构,首先定义类(class)来表示对象,然后定义函数__init__来定义所有的属性,这里有一个关键字self表示这里的属性以及方法仅适用于当前类。然后通过定义多个函数对当前类的方法加以表示。

实践

我们这里以一个学生为例介绍类的使用方法。首先新建一个脚本,将其命名为student.py,然后在该脚本中定义学生类:

class Student():def __init__(self, name, height, home, school):self.name = nameself.height = heightself.home = homeself.school = schooldef go_school(self):print("{} want to go {}".format(self.name, self.school))def go_home(self):print("{} want to go {}".format(self.name, self.home))

可见学生类包含4个属性,分别是姓名,身高,居住地,就读学校。并且包含两种方法,分别是去学校和回家。然后我们再新建一个脚本,用于调用Student类。

from student import Studentstudent_1 = Student("Jon", 170.2, "ShanXi", "XJTU")
student_2 = Student("Tom", 173.2, "XiAn", "XDU")student_1.go_school()
print(student_1.height)
student_2.go_home()
print(student_2.height)
>>> Jon want to go XJTU
>>> 170.2
>>> Tom want to go XiAn
>>> 173.2

首先我们从student模块中导入Student类,然后我们通过指定类属性的方式实例化两个学生,分别是student_1student_2。在调用属性方面,我们直接用实例化对象.属性就可以,在调用方法方面,我们用实例化对象.方法就可以。

以上便是面向对象编程的全部内容,感谢大家的收藏、点赞、评论。我们下一节将介绍类变量(Class Variables),敬请期待~

Python编程基础:第三十九节 面向对象编程Object Oriented Programming相关推荐

  1. Python编程基础:第二十九节 异常Exception

    第二十九节 异常Exception 前言 实践 前言 我们在写代码时不可避免地会出错,这时候编译器便会抛出异常并中断程序的执行.针对这种情况,我们可以采用异常处理的方式捕捉程序中的异常信息,并将异常信 ...

  2. Python编程基础:第十九节 索引Index Operator

    第十九节 索引Index Operator 前言 实践 前言 我们在字符串学习过程中已经接触过索引的相关内容,我们在这里做一个小结,Python中的索引分为两部分,一种是从左向右,从0开始依次递增,例 ...

  3. 风炫安全Web安全学习第三十九节课 反序列化漏洞基础知识

    风炫安全Web安全学习第三十九节课 反序列化漏洞基础知识 反序列化漏洞 0x01 序列化相关基础知识 0x01 01 序列化演示 序列化就是把本来不能直接存储的数据转换成可存储的数据,并且不会丢掉数据 ...

  4. Python编程基础:第二十五节 args参数*args

    第二十五节 args参数*args 前言 实践 前言 我们目前学习到的函数的参数个数都是固定的,那么我们是否可以指定任意多个参数呢?其实是可以的,这里就用到了args参数,它可以将用户指定的任意多个参 ...

  5. Python编程基础:第十五节 二维列表2D Lists

    第十五节 二维列表2D Lists 前言 实践 前言 列表中的元素可以是任何形式,整型.浮点型.字符串型,甚至是一个列表.当列表的元素也是列表时,我们将其称为二维列表. 实践 我们先来创建多个一维列表 ...

  6. Python编程基础:第二十四节 作用域Scope

    第二十四节 作用域Scope 前言 实践 前言 在Python中每一个变量都有其自己的生命周期,我们一般将变量分为全局变量与局部变量,全局变量是指在整个代码内部都可以访问到的变量,局部变量是指只有在函 ...

  7. Python编程基础:第二十六节 kwargs参数**kwargs

    第二十六节 kwargs参数**kwargs 前言 实践 前言 上一节我们尝试传入任意多的参数,我们这一节来学习传入任意多具有参数名称的参数.kwargs参数将用户传入的参数打包为字典传入函数中用于进 ...

  8. Python编程基础:第十六节 元组Tuple

    第十六节 元组Tuple 前言 实践 前言 我们这一节来学习一个与列表非常相似的数据结构--元组.需要注意的是元组定义好以后,其中的元素是不能改变的,并且所有元素是有序排列的, 实践 我们先来创建一个 ...

  9. Python编程基础:第十四节 列表Lists

    第十四节 列表Lists 前言 实践 前言 列表是一种非常常用的数据结构.我们可以用它来存储各种类型的数据. 实践 我们先来创建一个名为food的列表,里面存储了一系列我喜欢的食物名称: food = ...

最新文章

  1. python-9-IO编程
  2. ExecuteScaler的三种返回值。
  3. 东大教务处验证码破解
  4. 解决LoggerFactory is not a Logback LoggerEither remove Logback or the competing implementation (class
  5. live555 源码分析:MediaSever
  6. SAP Spartacus全局配置里和路由Route相关的配置
  7. python用xlrd怎么清洗数据_利用Python进行数据清洗
  8. 自然数从1到n之间,有多少个数字含有1
  9. Java的scjp,Java(一些基础) for SCJP
  10. Open3d之ubuntu18.04源码编译open3d
  11. 倒立摆及其应用//2021-2-23
  12. Automative SPICE 之五 过程能力层次和过程属性
  13. 中文·软件工程类·业务流程图、E-R图和IPO图·实践笔记
  14. [WARNING IsDockerSystemdCheck]: detected “cgroupfs“ as the Docker cgroup driver. The recommended dri
  15. PTA(接口)用java写 7-10 房屋、住宅、写字楼类
  16. oracle数据库监听说法正确,Oracle数据库错题合集
  17. lr_db_connect mysql_LR连接oracle数据库-lr_db_connect
  18. 转载 web前端进阶四阶段
  19. NSDictionary转换成JSON字符串
  20. 程序员多赚20k的接私活必备网站

热门文章

  1. 802.11协议精读9:初探节能模式(PS mode)与缓存机制
  2. 汤家凤高等数学基础手写笔记-曲线与曲面积分
  3. golang 编译提示 cannot assign interface {} 和golang断言使用
  4. 夜间灯光数据dn值_中国区域DMSP/OLS夜间灯光影像的校正
  5. Android旋转切换条目,Android:当我添加动态新的ListView条目时,ListView中的旋转器会丢失它们的值...
  6. php nginx配置范例,nginx配置文件范文
  7. Qt中的QStackedLayout
  8. web项目打包到上线教程_手把手教你在 IntelliJ IDEA 中部署 Web 项目
  9. 在每天下午5点使用计算机时,网络信息安全知识网络竞赛试题(附答案)讲解学习...
  10. html5三国策略布阵,丰神三国怎样布阵 布阵方法推荐