类和对象-Python-第一部分

初识对象

使用对象组织数据

class Student:name=Nonegender=Nonenationality=Nonenative_place=Noneage=Nonestu_1=Student()stu_1.name="林军杰"
stu_1.gender="男"
stu_1.nationality="中国"
stu_1.native_place="山东"
stu_1.age=31print(stu_1.name)
print(stu_1.gender)
print(stu_1.nationality)
print(stu_1.native_place)
print(stu_1.age)

类的成员方法

类的定义和使用

类的方法

成员方法的定义语法

成员变量和成员方法

注意事项

类和对象

基于类创建对象

class Clock:id=Noneprice=Nonedef ring(self):import winsoundwinsound.Beep(2000,3000)#2000是响铃频率,3000是响铃时间clock1=Clock()
clock1.id="003032"
clock1.price=19.19
print(f"闹钟ID:{clock1.id},价格:{clock1.price}")
clock1.ring()clock2=Clock()
clock2.id="003033"
clock2.price=21.99
print(f"闹钟ID:{clock2.id},价格:{clock2.price}")
clock2.ring()

构造方法 

class Student:name=Noneage=Nonetel=Nonedef __init__(self,name,age,tel):self.name=nameself.age=ageself.tel=telprint("Student类创建了一个类对象")stu=Student("周杰轮",31,1850000666)
print(stu.name)
print(stu.age)
print(stu.tel)

注意方法

学生信息录入

class Student:def __init__(self,name,age,address):self.name=nameself.age=ageself.address=addressfor i in range(1,11):Name=input("输入学生姓名")Age=input("输入学生年龄")Address=input("输入学生住址")stu =Student(Name,Age,Address)print(f"学生{i}信息录入完成,信息为:{stu.name},{stu.age},{stu.address}")

魔术方法

__str__字符串

__le__小于等于比较符号方法

__eq__,比较运算符实现方法

class Student:def __init__(self,name,age):self.name=nameself.age=age# __str__魔术方法      #当需要把类的对象变成字符串使用def __str__(self):return f"Student类对象,name:{self.name},age:{self.age}"#  __lt__魔术方法def __lt__(self, other):return self.age<other.age#__le__魔术方法def __le__(self, other):return self.age <= other.age#__eq__魔术方法def __eq__(self, other):return self.age == other.agestu1=Student("周杰轮",31)
stu2=Student("林俊节",36)
print(stu1)
#输出的是内存地址print(stu1<stu2)#  __lt__魔术方法
print(stu1>stu2)print(stu1 <= stu2)  # 使用 __le__ 方法
print(stu1 >= stu2)print(stu1 == stu2)  # 使用 __eq__ 方法

魔术方法的总结

注:面相对象三大特性:封装,继承,多态

封装

私有成员

使用私有成员

class Phone:__current_voltage=1      #当前手机运行电压def __keep_single_core(self):print("让CPU以单核模式运行")def call_by_5g(self):if self.__current_voltage>=1:print("5g通话已开启")else:self.__keep_single_core()print("电量不足,无法使用5g通话,并设置为单核运行进行省电")Phone=Phone()
#Phone.__keep_single_core()
#print(Phone.__keep_single_core())  wrong
Phone.call_by_5g()

注:私有成员在类中提供仅供内部使用的属性和方法,而不对外开放(类对象无法使用)

封装的课后习题

class Phone:__is_5g_enable=Falsedef __check_5g(self):if self.__is_5g_enable:print("5g开启")else:print("5g关闭,使用4g网络")def call_by_5g(self):self.__check_5g()print("正在通话中")phone=Phone()
phone.call_by_5g()

继承的基础语法

单继承

多继承

多继承注意事项

注:pass关键字,pass是占位语句,用来保证函数或类定义的完整性,表示无内容,空的意思

#演示单继承
class Phone:IMEI=None   #序号producer="ITCast"   #厂商def call_by_4g(self):print("4g通话")class Phone_2022(Phone):face_id="10001" #面部识别IDdef call_by_5g(self):print("2024年新功能,5g通话")phone=Phone_2022()
print(Phone.producer)
phone.call_by_4g()
phone.call_by_5g()#演示多继承
class NFCReader:nfc_type="第五代"producer="HM"def read_card(self):print("NFC读卡")def write_card(self):print("NFC写卡")class RemoteControl:rc_type="红外遥控"def control(self):print("红外遥控开启了")class MyPhone(Phone,NFCReader,RemoteControl):passphone=MyPhone()
phone.call_by_4g()
phone.read_card()
phone.write_card()
phone.control()
print(phone.producer)
#演示多继承下,父类成员名一致的场景

复写父类成员和调用

复写

调用父类同名成员

#演示单继承
class Phone:IMEI=None   #序号producer="ITCast"   #厂商def call_by_5g(self):print("使用5g网络进行通话通话")#演示多继承下,父类成员名一致的场景
class MyPhone(Phone):producer="ITHEIMA"def call_by_5g(self):print("开启CPU单核模式,确保通话时省电")#方式1# print(f"父类的厂商是{Phone.producer}")# Phone.call_by_5g(self)#方式2print(f"父类的厂商是:{super().producer}")super().call_by_5g()print("使用5g网络进行通话")print("关闭CPU单核运行模式,确保性能")phone=MyPhone()
phone.call_by_5g()
print(phone.producer)

 若有侵权,请联系作者

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

自主实现Telnet流量抓取

自主实现Telnet流量抓取 根据测试需求&#xff0c;需要抓取Telnet流量包&#xff0c;使用wireshark Python&#xff08;socket、telnetlib库&#xff09;实现 实现代码 主要此处有坑&#xff0c; 根据协议规则&#xff0c;wireshark 默认端口为23 的是Telnet协议&#xff0…

【通信】电子科协通信专题

数字通信 最直观的通信方式-基带通信 问题&#xff1a;①无限大的带宽②天线体积

男士内裤什么材质的好?五款材质舒适的男士内裤品牌

男士内裤目前已经有非常多的选择&#xff0c;三角/平角、传统面料/功能面料、设计版型等等都五花八门&#xff0c;所以不少男性朋友在挑选内裤时都觉得选择过多&#xff0c;另人难以选择&#xff0c;同时还担心选到一些质量不好的内裤&#xff0c;舒适性不仅差而且对健康有影响…

DJANGO_PART 1

DJANGO_PART 1 文章目录 DJANGO_PART 11. 安装DJANGO2. 创建项目3. APP概念4. 快速上手5. templates6. 引入其它静态文件7. 模板语法8. 请求与响应 1. 安装DJANGO 安装语句&#xff1a;pip install django 2. 创建项目 django中项目会有一些默认的文件和默认的文件夹 终端创建…

idea 项目 修改项目文件名 教程

文章目录 目录 文章目录 修改流程 小结 概要流程技术细节小结 概要 原项目名 修改流程 关掉当前项目的idea页面 修改之后的文件名 重新打开idea。选择项目打开项目页面 技术细节 出现下面这个问题&#xff0c;可以参考作者新的一编文章idea开发工具 项目使用Spring框架开发解…

Pyecharts的编程环境准备

一&#xff0c;准备Python编程环境&#xff1a; Python版本&#xff1a;3.10以上&#xff0c;最高版本3.12 https://www.python.org/ 进入官网&#xff0c;点击downloads—>windows进入下载页面&#xff0c;搜索”3.10.6”找到指定版本&#xff0c;下载并安装64位Installer…

静态住宅代理 IP 的影响

在不断发展的在线业务和数字营销领域&#xff0c;保持领先地位势在必行。在业界掀起波澜的最新创新之一是静态住宅代理 IP 的利用。这些知识产权曾经是为精通技术的个人保留的利基工具&#xff0c;现在正在成为各行业企业的游戏规则改变者。 一、静态住宅代理IP到底是什么&…

【查找算法】之二分查找

一、算法介绍 二分查找&#xff0c;也称为折半查找&#xff0c;是一种在有序数组中查找特定元素的高效算法。对于包含 n 个元素的有序数组&#xff0c;二分查找的步骤如下&#xff1a; 确定搜索范围&#xff1a;首先&#xff0c;将要查找的元素与数组中间的元素进行比较。如果…

springboot+vue+mybatis图书推荐管理系统的设计与实现+PPT+论文+讲解+售后

随着我国经济的高速发展与人们生活水平的日益提高&#xff0c;人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下&#xff0c;人们更趋向于足不出户解决生活上的问题&#xff0c;图书推荐管理系统展现了其蓬勃生命力和广阔的前景。与此同时&#xff0c;为解决…

Burp Suite抓取明文

目录 Burp Suite代理 正常的通信模式 Burp Suite代理后通信模式 设置代理 安装证书 导出证书 Burp Suite导入 浏览器下载证书 安装证书 管理证书 导入证书 下一步 导入证书 下一步 完成 抓明文的例子 1、修改浏览器代理 ​编辑2、开启拦截​编辑 3、查看抓取历…

Linux cmake 初窥【3】

1.开发背景 基于上一篇的基础上&#xff0c;已经实现了多个源文件路径调用&#xff0c;但是没有库的实现 2.开发需求 基于 cmake 的动态库和静态库的调用 3.开发环境 ubuntu 20.04 cmake-3.23.1 4.实现步骤 4.1 准备源码文件 基于上个试验的基础上&#xff0c;增加了动态库…

应用软件安全保证措施方案书

系统安全保证措施方案—word原件 软件全套资料进主页获取或者本文末个人名片直接获取。

上线了《學點笔录》,更方便翻阅笔录

大家好&#xff0c;我是学点&#xff0c;整理了一下自己笔记、摘要、记录《學點笔录》并且上线了为更方便翻阅 https://code.yellowcan.cn 欢迎来我的學點笔录网站&#xff01;笔录会关于与编程有关&#xff0c;比如bug记录、bug解决过程、编程笔记等等&#xff0c;帮助回忆阅…

javaWeb入门(自用)

1. vue学习 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><script src"https://unpkg.com/vue2"></script> </head> <body><div id"…

Store buffer 解决CPU的停滞(stall)状态

Store buffer的引入主要是为了解决CPU在执行写操作时可能遇到的性能问题。具体来说&#xff0c;当CPU需要将数据写入到内存或AXIM总线时&#xff0c;如果直接进行写操作&#xff0c;CPU可能需要等待写操作完成才能继续执行其他指令&#xff0c;这会导致CPU的停滞&#xff08;st…

Spring后端参数校验——自定义校验方式(validation)

文章目录 开发场景技术名词解释——Spring Validation自定义校验 技术细节小结1.实体参数校验2.自定义校验 完整代码 开发场景 业务场景&#xff1a;新增文章 基本信息 请求路径&#xff1a;/article 请求方式&#xff1a;POST 接口描述&#xff1a;该接口用于新增文章(发布文…

MySQL数据库---增删查改汇总

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文着重整理MySQL数据库增删查改功能 主要是整理语法 争取做到要用什么语法 可以快速找到复制粘贴 增添语法 INSERT into tab(列名,列名,列名) values(内容,内容,内容); 插入一行数据 INSERT into tab(列名,…

2023年谷歌拒了228万应用,禁了33.3万账号,开发者们应如何应对2024的挑战?

谷歌在上周一公布了去年如何应对恶意应用和恶意行为。 报告指出&#xff0c;去年谷歌在Google Play平台上&#xff0c;通过不断升级安全系统、更新政策规定、运用先进的机器学习技术&#xff0c;以及严格把关应用审核流程&#xff0c;成功阻止了高达228万个不合规的应用程序上架…

AI PC,到底谁的梦想、谁的红利?

世界上第一台通用计算机是1946年诞生的埃尼阿克&#xff0c;世界上第一台便携电脑是1981年诞生的“奥斯本1号”&#xff0c;世界上第一部智能手机是1993年诞生的IBM Simon。 它们之间看起来毫无关系&#xff0c;但却暗含一种关于创新的微妙潜规则——随着时间推移&#xff0c;…

MySQL部署系列-centos离线安装MySQL

MySQL部署系列-centos离线安装MySQL 文章目录 MySQL部署系列-centos离线安装MySQL1. 查看是否已经安装 Mysql3. 下载官方 Mysql 包3. 下载之后上传到服务器4. 创建用户组5. 创建数据目录并赋予权限6. 修改配置文件 vim /etc/my.cnf7. 初始化数据库(数据库安装)8. 加入到系统服务…