【Python学习】—面向对象(九)

【Python学习】—面向对象(九)

一、初识对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
类中不仅可以定义属性来记录数据,也可以定义函数,用来记录行为,类中定义的属性(变量)我们称之成员变量,类中定义的行为(函数),我们称之为成员方法。

成员方法的定义语法

在这里插入图片描述
在这里插入图片描述

self的作用

  • 表示对象本身的意思
  • 只有通过self,成员方法才能访问类的成员变量
  • self出现在形参列表中,但是不占用参数位置,无需例会
class Student:name=Nonedef say_hi(self):print(f"大家好,我是{self.name},欢迎大家多多关照")stu=Student()
stu.name="张三"
stu.say_hi()

二、基于类创建对象

在这里插入图片描述

class Clock:id=Noneprice=Nonedef ring(self):import winsoundwinsound.Beep(2000, 3000)clock1=Clock()
clock1.id='1112'
clock1.price=233
print(f"闹钟ID:{clock1.id},价格{clock1.price}")
clock1.ring()clock2=Clock()
clock2.id='21122'
clock2.price=99.00
print(f"闹钟ID:{clock2.id},价格{clock2.price}")
clock2.ring()

三、构造方法

Python类可以使用:_init_()方法,称为构造方法

可以实现:

  • 在创建类对象(构造类)的时候,会自动执行
  • 在创建类对象( 构造类)的时候,将传入的参数自动传递给_init_方法使用
class Student:name = Noneage=Nonetel=Nonedef __init__(self,name,age,tel):self.name=nameself.age=ageself.tel=telprint("student类创建了一个对象")stu=Student("Cai",20,'13222222222')
print(stu.name)
print(stu.age)
print(stu.tel)

构造方法注意事项

在这里插入图片描述
在这里插入图片描述

四、内置方法

__init__构造方法,是Python类内置的方法之一,这些内置的类方法,各自有各自特殊的功能,这些内置方法我们称为魔术方法


在这里插入图片描述

class Student:def __init__(self,name,age):self.name=nameself.age=agedef __lt__(self,other):return self.age<other.age
stu1=Student("张三",20)
stu2=Student("李四",17)print(stu1<stu2)
print(stu1>stu2)

在这里插入图片描述

在这里插入图片描述

class Student:def __init__(self,name,age):self.name=nameself.age=agedef __le__(self,other):return self.age <= other.age
stu1=Student("张三",20)
stu2=Student("李四",20)print(stu1<=stu2)#True
print(stu1>=stu2)#True
class Student:def __init__(self,name,age):self.name=nameself.age=agedef __eq__(self,other):return self.age == other.age
stu1=Student("张三",20)
stu2=Student("李四",20)print(stu1==stu2)#True

总结

在这里插入图片描述

五、封装

面向对象的三大特性:继承、封装、多态

封装

在这里插入图片描述
私有成员

私有成员无法被类对象使用,但是可以被其他的成员使用
在这里插入图片描述

在这里插入图片描述

继承

在这里插入图片描述
在这里插入图片描述

class 类名(父类名):内容体

在这里插入图片描述

pass的关键字

pass是一个普通的占位符,保证函数或者类定义的完整性,表示无内容、空的意思

复写

在子类中重新定义同名的属性或方法

在这里插入图片描述

六、类型注解语法

在这里插入图片描述
在这里插入图片描述

var_1: int=10
var_2: str="caicai"
var_3: bool=Trueclass Student:pass
stu:Student=Student()my_list:list=[1,2,3]
my_tuple:tuple=(1,2,3)
my_dict:dict={"caicai":123}my_list:list[int]=[1,23,3]
my_tuple:tuple[int,str,bool]=(1,"cai",True)

在这里插入图片描述
在这里插入图片描述

函数类型注解

在这里插入图片描述

七、多态

多态指的是:多种状态,即完成某个行为时,使用不同的对象会得到不同的状态

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/123871.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【多态-动态绑定-向上转型-抽象类】

文章目录 静态绑定动态绑定多态的具体实现向上转型多态的优缺点抽象类抽象类的作用 总结 静态绑定 重载就是典型例子 动态绑定 多态的具体实现 //多态 class Animal{public String name;public int age;//无参构造方法public Animal() {}//有参构造方法public Animal(Strin…

MySQL Server 5.5 软件和安装配置教程

MySQL 5.5.58&#xff08;32/64位&#xff09;下载链接&#xff1a; 百度网盘&#xff1a;百度网盘 请输入提取码 提取密码&#xff1a;7act 软件简介&#xff1a; MySQL 是由瑞典MySQL AB 公司开发一个关系型数据库管理系统&#xff0c;目前属于 Oracle 旗下产品。MySQL 是最…

代码没注释?一个方法几百行?

干程序员的都有接收别人的代码的经历&#xff0c;大部分时候&#xff0c;我们都会偷偷骂一句“这人是傻逼吧&#xff0c;这代码写的这么烂&#xff01;” “一个方法写几百行&#xff0c;还没有注释&#xff0c;鬼知道写的什么东西&#xff01;” 现在&#xff0c;你不需要为…

__707设计链表

单向链表设计 package 日常Java程序测试.代码随想录.链表;public class __707设计链表__单向链表设计 {class MyLinkedList {//我们首先需要自己定义属性出来int val;MyLinkedList next;int size; //记录链表大小//MyLinkedList() 初始化 MyLinkedList 对象。public MyLinke…

2.flink编码第一步(maven工程创建)

概述 万里第一步&#xff0c;要进行flink代码开发&#xff0c;第一步先整个 flink 代码工程 flink相关文章链接 flink官方文档 两种方式 一种命令行 mvn 创建&#xff0c;另一种直接在 idea 中创建一个工程&#xff0c;使用 mvn 的一些配置 mvn命令行创建 mvn 创建flink工程&…

吴恩达《机器学习》1-4:无监督学习

一、无监督学习 无监督学习就像你拿到一堆未分类的东西&#xff0c;没有标签告诉你它们是什么&#xff0c;然后你的任务是自己找出它们之间的关系或者分成不同的组&#xff0c;而不依赖于任何人给你关于这些东西的指导。 以聚类为例&#xff0c;无监督学习算法可以将数据点分成…

《微习惯》-微习惯策略的八大规则

绝不要自欺欺人满意每一个进步经常回报自己&#xff0c;尤其在完成微习惯之后保持头脑清醒感到强烈抵触时&#xff0c;后退并缩小目标提醒自己这件事很轻松绝不要小看微步骤用多余精力超额完成任务&#xff0c;而不是制定更大目标

LeetCode383. Ransom Note

文章目录 一、题目二、题解 一、题目 Given two strings ransomNote and magazine, return true if ransomNote can be constructed by using the letters from magazine and false otherwise. Each letter in magazine can only be used once in ransomNote. Example 1: I…

接口测试,一篇搞定

大多数人对于接口测试都觉得是一种高大上的测试&#xff0c;觉得学会接口测试就可以从小白测试员&#xff0c;变成了高级测试员&#xff0c;但其实接口测试只是测试的基础内容 什么是接口 接口泛指实体把自己提供给外界的一种抽象化物&#xff08;可以为另一实体&#xff09;&…

9、电路综合-基于简化实频的任意幅频响应的微带电路设计

9、电路综合-基于简化实频的任意幅频响应的微带电路设计 网络综合和简化实频理论学习概述中的1-8介绍了SRFT的一些基本概念和实验方法&#xff0c;终于走到了SRFT的究极用途&#xff0c;给定任意响应直接综合出微带电路。 1、任意幅频响应的微带电路设计用途 我们演示了采用…

Django的静态文件目录(路径)如何配置?

通常用下面的三条语句配置Django的静态文件目录 STATICFILES_DIRS [os.path.join(BASE_DIR, static)] STATIC_URL /static/ STATIC_ROOT os.path.join(BASE_DIR, /static)那么这三条语句分别的作用是什么呢&#xff1f; 请参考博文 https://blog.csdn.net/wenhao_ir/articl…

STM32单片机智能小车一PWM方式实现小车调速和转向

目录 1. 电机模块开发 2. 让小车动起来 3. 串口控制小车方向 4. 如何进行小车PWM调速 5. PWM方式实现小车转向 1. 电机模块开发 L9110s概述 接通VCC&#xff0c;GND 模块电源指示灯亮&#xff0c; 以下资料来源官方&#xff0c;具体根据实际调试 IA1输入高电平&#xff…

添加主仓库后报错error: remote upstream already exists.

可能的原因 远程名 upstream 已经被使用&#xff1a; 这通常意味着你在之前已经添加了一个名为 upstream 的远程仓库。 解决方案 检查现有的远程仓库&#xff1a; 运行 git remote -v 来查看所有配置的远程仓库。这个命令会列出所有远程仓库的URL&#xff0c;你可以检查是否已…

视频分辨率/帧率/码率选择参考

1. 视频码率与分辨率的参考表 1080&#xff0a;720的分辨率&#xff0c;用5000K左右&#xff1b; 720&#xff0a;576的分辨率&#xff0c;用3500K左右&#xff1b; 640&#xff0a;480的分辨率&#xff0c;用1500K左右。 2. 计算公式 基本算法&#xff1a;码率&#xff08;kb…

部署vuepress项目到githubPage

部署vuepress项目到githubPage 1. 项目文件夹下有两个分支&#xff08;main和gh-page&#xff09; 1.1 main分支存放项目代码 1.2 gh-page分支存放 npm run docs:build之后的dist里面的所有文件 2. 分别提交到github上 3. 你的项目/docs/.vuepress/config.js module.export…

3.1每日一题(定积分求压力问题)

公式&#xff1a; (1) 压力等于压强乘以面积 (2) 压强等于ρgh(即密度&#xff0c;重力加速度&#xff0c;水的深度) 注&#xff1a;题目表面不一样&#xff0c;实际的原理都一样&#xff0c;做透一道题等于做懂一类题

FLinkCDC

序言 CDC 是 Change Data Capture&#xff08;变更数据获取&#xff09;的简称。核心思想是&#xff0c;监测并捕获数据库的变动&#xff08;包括数据或数据表的插入、更新以及删除等&#xff09;&#xff0c;将这些变更按发生的顺序完整记录下来&#xff0c;写入到消息中间件中…

论文阅读——InstructGPT

论文&#xff1a;Training_language_models_to_follow_instructions_with_human_feedback.pdf (openai.com) github&#xff1a;GitHub - openai/following-instructions-human-feedback 将语言模型做得更大并不能从本质上使它们更好地遵循用户的意图。例如&#xff0c;大型语…

光学仿真|优化汽车内部照明体验

当我们谈论优化人类感知的内部照明时&#xff0c;我们实际上指的是两个重点领域&#xff1a;安全性和驾驶员体验。如果内部照明可以提供尽可能最佳的体验&#xff0c;驾驶员则能够更好地应对颇具挑战性或意外的驾驶状况&#xff0c;并且减轻疲劳感。除了功能优势外&#xff0c;…

Vue 3 响应式对象:ref 和 reactive 的使用和区别

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是尘缘&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f449;点击这里&#xff0c;就可以查看我的主页啦&#xff01;&#x1f447;&#x…