当前位置: 首页 > news >正文

python学习-类

Python是一门面向对象的编程语言,面向对象编程(Object OrientedProgramming,OOP)是一种编程思想,它把对象作为程序的基本单元,一个对象可以包裹相应的数据以及操作这些数据的函数。一切皆对象,所有的数据类型都可以视为对象

类的基础

使用类(class)的形式自定义对象。使用class关键字来创建一个新的类,class关键字之后紧随着类的名称与该类继承的类(称为父类),最后以冒号结尾。示例代码如下:

创建了名为People的类,People类继承object基类,在Python3.x版本中,所有类都会默认继承object基类.在类中定义的变量通常称为类变量;在类中定义的方法称为类方法,其中第一个参数通常为self,self表示类的实例对象本身。类中的变量以及方法都可以统称为类的属性。

使用类中的代码,首先需要实例化类,然后通过实例对象使用其中的属性.实例化了两个People类的实例变量p1与p2,通过“.”操作符使用类中的属性,非常简单。

如果我们希望在实例化类时传入自定义参数,此时就需要重写__init__方法.

继承与多态

类对象是可以被继承的,通过继承子类可以获取父类的所有属性与功能。

通过继承,Student类不用编写任何代码,就拥有了与People类相同的属性与功能。

子类除可以获取父类的所有属性与功能外,还可以新增自己的功能或修改父类的功能,示例代码如下:

Student类继承了People类,并且重写了People类中的__init__方法与talk方法,通过重写的方式,让两个方法更加符合Student类。

子类中重写的方法会将父类方法中的逻辑完全覆盖。可以基于父类方法中的代码添加新的逻辑,从而不需要全部清空重写。

通过super方法可以调用父类中对应的方法,从而执行父类方法中的逻辑;而子类方法中的新逻辑只需在super方法后添加相应的代码。

通过类继承并修改父类方法获得继承的另一个好处是:多态

利用继承机制,可以创建继承于同一个类的多种不同的子类。

Student类与Teacher类在实例化后的对象依旧是People类,这其实就是多态,子类依旧属于父类,不同的子类造就了多态。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 小程序开发页面获取小程序assess文件夹下所有图片
  • 网络服务器都包含哪些方面需要维护?
  • STM32学习和实践笔记(39):I2C EEPROM实验
  • 基于单片机的温控光控智能窗帘设计探讨
  • 【React】基础数据回填--useForm与setFieldsValue详解
  • FL Studio 24.1.1.4234 (Windows) / 24.1.1.3884 (Mac OS X)
  • 基于antdesign封装一个react的上传组件
  • NPDP含金量高吗?什么人适合学习NPDP?
  • Python函数 之 模块和包
  • 设置DepthBufferBits和设置DepthStencilFormat的区别
  • 动手学深度学习54 循环神经网络
  • 企业微信群发消息高效指南,一文了解!
  • 新型开发语言的试用感受-仓颉语言发布之际
  • RedHat运维-Ansible自动化运维基础26-管理用户与认证
  • 体积大的快递怎么寄便宜?如何寄件寄包裹更省钱?
  • Android 架构优化~MVP 架构改造
  • GitUp, 你不可错过的秀外慧中的git工具
  • Java IO学习笔记一
  • js作用域和this的理解
  • Markdown 语法简单说明
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Rancher-k8s加速安装文档
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • Vue学习第二天
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 仿天猫超市收藏抛物线动画工具库
  • 将 Measurements 和 Units 应用到物理学
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 前端之React实战:创建跨平台的项目架构
  • 手机端车牌号码键盘的vue组件
  • 译自由幺半群
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 正则表达式-基础知识Review
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #include到底该写在哪
  • #预处理和函数的对比以及条件编译
  • (003)SlickEdit Unity的补全
  • (7) cmake 编译C++程序(二)
  • (C++哈希表01)
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (ibm)Java 语言的 XPath API
  • (poj1.2.1)1970(筛选法模拟)
  • (solr系列:一)使用tomcat部署solr服务
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (超详细)语音信号处理之特征提取
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二)windows配置JDK环境
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (十)T检验-第一部分
  • (四)库存超卖案例实战——优化redis分布式锁
  • (贪心 + 双指针) LeetCode 455. 分发饼干