类和对象1
初识对象设计类设计一个登记表classStudent:nameNone#记录学生姓名genderNone#记录学生性别nationalityNone#记录学生国籍native_placeNone#记录学生籍贯ageNone#记录学生年龄2.创建对象打印一个登记表stu_1Student()# stu_1Student()即使对象也是变量3.对象属性进行赋值填写表单stu_1.name林新stu_1.gender男stu_1.nationality中国stu_1.native_place江苏省stu_1.age184.获取对象中记录的信息print(stu_1.name)print(stu_1.gender)print(stu_1.nationality)print(stu_1.native_place)print(stu_1.age)类中成员方法的定义和使用class 类名称class是关键字表示要定义类类的属性记录数据定义在类中的变量成员变量类的行为定义函数用来记录方法定义在类中的函数成员方法函数写在类外面的写在类内部的函数叫方法创建类对象的语法对象类名称()成员方法的定义语法和定义函数基本一致多了个self关键字self表示类对象自身在传参的时候可以当作不存在当我们使用类对象调用方法self会自动被python传入。在方法内部想要访问类的成员变量必须使用self self.namedef 方法名(self,形参1,.......,形参n) 方法体 class 类名称 成员变量 def 成员方法(self,参数列表) 成员方法体 对象类名称()总结定义一个带有成员方法的类classStudent:nameNone# 学生姓名defsay_hi(self):print(f大家好呀我是{self.name},欢迎大家多多关照)# 想要访问成员属性必须使用self这个关键字defsay_hi2(self,msg):print(f大家好呀我是{self.name},{msg})stuStudent()stu.name左航stu.say_hi()stu2Student()stu2.name邓佳stu2.say_hi2(你们好啊)面向对象的编程思路基于模板类去创建实体对象使用对象完成功能开发1.封装2.继承3.多态基于类创建对象的语法:为什么非要创建对象才能使用呢答类只是一种程序内的“设计图纸”需要基于图纸生产实体对象才能正常工作这种套路称之为面向对象编程面向对象编程设计类基于类创建对象由对象做具体的工作设计一个闹钟类classClock:idNone#序列化priceNone#价格defring(self):importwinsound winsound.Beep(500,500)# (频率,时间)# 构建两个闹钟对象让其工作clock1Clock()#基于类创建对象clock1.id003203# 使用对象的属性和行为clock1.price9.99print(f闹钟ID:{clock1.id},价格{clock1.price})clock1.ring()# 调用ring这个方法clock2Clock()clock2.id001122clock2.price19.88print(f闹钟ID:{clock2.id},价格{clock2.price})clock1.ring()# 调用ring这个方法类的构造方法用构造方法对成员变量进行赋值classStudent:# 这一段可以省略nameNoneageNonetelNonedef__init__(self,name,age,tel):# 会自动声明上面的变量既可以定义也可以赋值self.namename self.ageage self.teltelprint(student类创建了一个类对象)stuStudent(zhou,31,123456)# 这句话一执行上面那个def的构造方法就跑了起来# zhou给了name31给了age123456给了tel。外部传入的参数给了内部的成员变量内部的成员变量print(stu.name)print(stu.age)print(stu.tel)总结习题案例foriinrange(1,10):print(f当前录入第{i}位学生的信息总共需录入10位学生信息)nameinput(请输入学生的姓名)ageinput(请输入学生的年龄)addressinput(请输入学生的地址)ii1classStudent:def__init__(self,name,age,tel):self.namename self.ageage self.teltel stuStudent(f{name},{age},{address})print(f学生{i}信息录入完成信息为【学生姓名{name}年龄:{age},地址{address}】)常用的类内置方法python内置的各类魔术方法前后两个__str__classStudent:def__init__(self,name,age):self.namename self.ageage# __str__魔术方法打印类对象默认是它的地址用这个方法可以改变默认输出为你想要的def__str__(self):returnfStudent类对象name:{self.name},age:{self.age}# __lt__魔术方法在两个类对象之间进行比较小于或者大于返回True或Falsedef__lt__(self,other):returnself.ageother.age# self当前对象other被比较对象# __le__魔术方法小于等于或者大于等于def__le__(self,other):returnself.ageother.age# __eq__魔术方法相等比较不用该方法的话类对象中比较的是两个地址def__eq__(self,other):returnself.ageother.age stu1Student(zhou,35)stu2Student(lin,35)print(f根据后面的比较符输出结果stu1 stu2{stu1stu2}这是le的比较)print(stu1stu2)#Falseprint(stu1stu2)#True封装私有成员的设置私有成员变量变量名以__开头、私有成员行为变量名以__开头私有成员属性和成员方法无法被类对象直接使用但可以被类中其他的成员使用。私有成员的意义在类中提供仅供内部使用的属性和方法而不对外开放类对象无法使用私有的只可以让我们内部自己使用总结# 定义一个类内含私有成员变量和私有成员方法classPhone:__current_voltage0.5# 等于1的时候5G通话已开启5G通话已开启等于0.5的时候让CPU以单核形式运行电量不足,无法使用5G...def__keep_single_core(self):print(让CPU以单核形式运行)defcall_by_5g(self):#定义了call_by_5G的一个成员方法在这个公开的方法里面它可以调用我们不公开的私有成员变量和私有成员方法ifself.__current_voltage1:print(5G通话已开启)else:self.__keep_single_core()# 调用上面的私有成员print(电量不足,无法使用5G通话并已设置为单核运行进行省电)# 调用类对象phone来调用phone类中的其他成员的call_by_5g这个方法phonePhone()phone.call_by_5g()# phone.__keep_single_core() 这两个私有成员变量和私有成员方法无法被直接类对象phone使用# print(phone.__current_voltage)封装练习题classIphone:__is_5g__enableTruedef__check_5g(self):ifself.__is_5g__enable:print(5g开启)else:print(5g关闭使用4g网络)defcall_by_5g(self):self.__check_5g()print(正在通话中)iphoneIphone()iphone.call_by_5g()# 通过调用公有成员来调用私有成员属性和私有成员方法# 私有成员的意义通过它可以调用不直接对用户开放的属性和行为

相关新闻

树莓派3B+零成本改造软路由:使用基于OpenWrt的国内优化版系统ImmortalWrt

树莓派3B+零成本改造软路由:使用基于OpenWrt的国内优化版系统ImmortalWrt

一、 前言 如果你也有一台闲置的树莓派3B,并且需要一个软路由。那么请继续往下看。 本文记录了我如何将一台树莓派3B,从运行Ubuntu 手动配置PPPoE hostapd的“拼凑版”软路由,平滑迁移到开箱即用的ImmortalWrt系统。一台成本仅百元的小板…

2026/7/25 20:19:43 阅读更多 →
League Akari:英雄联盟玩家的终极本地化智能助手,告别卡顿与延迟的完整解决方案

League Akari:英雄联盟玩家的终极本地化智能助手,告别卡顿与延迟的完整解决方案

League Akari:英雄联盟玩家的终极本地化智能助手,告别卡顿与延迟的完整解决方案 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Tool…

2026/7/25 20:18:42 阅读更多 →
AI大模型数学推理能力评测:从高考148分看工程化思维链应用

AI大模型数学推理能力评测:从高考148分看工程化思维链应用

最近,AI大模型挑战高考数学题的消息刷屏了。一个标题为“大型纪录片《AI做高考题集体宕机》持续为您播出!!”的梗图在技术圈流传,调侃AI在复杂推理面前“翻车”的窘境。然而,当我们翻开真实的评测报告,看到的却是另一番景象:在2026年新高考I卷数学的实战中,以讯飞星火、…

2026/7/25 20:18:42 阅读更多 →

最新新闻

Linux运维学习路线:从零基础到企业级实战的完整指南

Linux运维学习路线:从零基础到企业级实战的完整指南

如果你正在寻找一套系统、完整且能真正带你从零基础入门到掌握企业级Linux运维技能的学习资源,那么这篇文章就是为你准备的。我们这次要看的不是某个单一的软件或模型,而是一个结构化的“学习路线图”和配套的“资源包”。它解决了初学者面对海量、零散的Linux运维教程时,不…

2026/7/25 20:31:49 阅读更多 →
Codex接入第三方大模型API实战:DeepSeek/GLM/Kimi配置指南

Codex接入第三方大模型API实战:DeepSeek/GLM/Kimi配置指南

Codex 作为一款流行的AI编程助手,其官方能力通常绑定于特定的服务提供商。但如果你手头有DeepSeek、智谱GLM、Kimi等国内主流大模型的API密钥,是否能让Codex“为我所用”,直接调用这些第三方模型来辅助编程呢?答案是肯定的,而且官方也提供了相应的支持路径。 这篇文章的核…

2026/7/25 20:31:49 阅读更多 →
基于大语言模型的智能输入补全工具MagicX AI Autocomplete实践指南

基于大语言模型的智能输入补全工具MagicX AI Autocomplete实践指南

MagicX AI Autocomplete 是一个基于大语言模型的智能输入辅助工具,它通过深度理解用户输入意图,实时生成高质量的补全内容。这个工具的核心价值在于将传统的"关键词匹配"升级为"语义理解",能够显著提升内容创作、代码编写…

2026/7/25 20:31:49 阅读更多 →
无模型强化学习核心算法:蒙特卡洛与时序差分原理及Sarsa与Q-learning实战对比

无模型强化学习核心算法:蒙特卡洛与时序差分原理及Sarsa与Q-learning实战对比

如果你是一名生物专业的学生,第一次接触强化学习,可能会觉得它离你的领域很远——不就是训练AI玩游戏吗?但请先别急着划走。想象一下,你正在研究一种蛋白质的折叠过程,或者设计一个药物筛选的实验流程。这些任务本质上…

2026/7/25 20:31:49 阅读更多 →
3分钟极速上手:GitHub中文界面插件的完整指南与实战技巧

3分钟极速上手:GitHub中文界面插件的完整指南与实战技巧

3分钟极速上手:GitHub中文界面插件的完整指南与实战技巧 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 你是否曾因GitHub…

2026/7/25 20:31:49 阅读更多 →
3步掌握Photon光影包:打造电影级Minecraft视觉体验的完整指南

3步掌握Photon光影包:打造电影级Minecraft视觉体验的完整指南

3步掌握Photon光影包:打造电影级Minecraft视觉体验的完整指南 【免费下载链接】photon A gameplay-focused shader pack for Minecraft 项目地址: https://gitcode.com/gh_mirrors/photon3/photon 还在为Minecraft单调的视觉效果感到乏味吗?Photo…

2026/7/25 20:30:49 阅读更多 →

日新闻

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:00:35 阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:35 阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:35 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 5:08:22 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 5:13:53 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻