news 2026/3/25 17:43:47

【day 28】类的定义和方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【day 28】类的定义和方法

@浙大疏锦行

class Teacher: # 这里不需要括号 def __init__(self): #初始化方法,这里没有传入参数 self.name = "Susan" # 给类定义一些属性 self.subject = "English" self.age = 33 Teacher = Teacher() # 创建一个Teacher类的实例 print(Teacher.name) # 输出: Susan

class Teacher: def __init__(self, name, age):# 初始化方法,传入了参数 self.name = name # 外界的参数,需要通过self.xxx来复制给类自己的属性 self.age = age self.subject = "English" # 这个属性仍然是在创建时就设定好的 # 创建一个Teacher对象的例子,构造方法的参数必须 teacher = Teacher("Susan", 33) # 如果在初始化方法中设置了非默认的参数,那么外界就必须要传入才行 print(teacher.name) # 输出: Susan print(teacher.age) # 输出: 33 print(teacher.subject) # 输出: English

class Teacher: # 初始化方法接受参数以动态设置教师的属性 def __init__(self, name, subject, age): self.name = name self.subject = subject self.age = age # 不是init的都叫做普通方法 # 普通方法,模拟教师上课的行为 def teach_lesson(self): print(f"{self.name}正在教{self.subject}。") # 另一个普通方法,模拟教师批评学生的行为 def criticize(self, student_name): print(f"{self.name}正在批评{student_name}。") # 创建Teacher类的实例 teacher = Teacher("Susan", "English", 33) # 调用教师的方法 teacher.teach_lesson() teacher.criticize("John")#普通方法的参可以等到调用该方法的时候再传

# 先沿用之前定义的teacher类 class Teacher: def __init__(self, name, subject, age): self.name = name self.subject = subject self.age = age def teach_lesson(self): print(f"{self.name}正在教{self.subject}。") def criticize(self, student_name): print(f"{self.name}正在批评{student_name}。") # 继承 Teacher 类,起名特级教师 class MasterTeacher(Teacher): # 1. 继承需要在括号中指定父类 def __init__(self, name, subject, age, experience_years):# 2. 继承的时候需要调用父类的构造方法,所以需要传入父类的参数,同时也可以传入自己的参数 # 调用父类的构造方法初始化基本属性 super().__init__(name, subject, age) # 3. 调用父类的构造方法,这里的super()是一个内置函数,返回父类的实例 # 4. 此时子类自动拥有了父类的属性和方法 # 添加子类特有的属性 self.experience_years = experience_years # 5. 子类特有的属性可以在这里定义 # 重写父类方法,增强功能-----如果子类定义了与父类同名的方法,子类实例会优先调用子类的方法。 def teach_lesson(self): # 6. 重写父类的方法 print(f"{self.name}(特级教师)正在用高级方法教授{self.subject}。") # 新增子类特有的方法 def give_lecture(self, topic): print(f"{self.name}正在举办关于{topic}的讲座。") # 创建子类实例 master = MasterTeacher("王教授", "数学", 45, 20) # 调用继承的方法 master.teach_lesson() # 调用重写的父类的方法 master.criticize("李同学") # 调用父类的方法,如果不修改方法,则可以直接继承父类的方法 # 调用子类特有的方法 master.give_lecture("微积分") # 调用子类新增的方法

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/24 16:03:16

Manim终极指南:从数学曲线到3D分子动画的深度解析

Manim终极指南:从数学曲线到3D分子动画的深度解析 【免费下载链接】manim A community-maintained Python framework for creating mathematical animations. 项目地址: https://gitcode.com/GitHub_Trending/man/manim 在当今数据可视化和科学传播的时代&a…

作者头像 李华
网站建设 2026/3/24 17:55:00

langchian4j多模型配置

在 AI 应用爆发的今天,单一的大语言模型往往难以满足所有业务场景的需求。我们经常面临这样的权衡: 成本与性能:用 DeepSeek 处理高频的普通对话,用 GPT-4 或通义千问(Qwen-Plus)处理复杂的逻辑推理。高可用…

作者头像 李华
网站建设 2026/3/22 4:08:34

Thrust并行算法库:5个关键优势解析

Thrust并行算法库:5个关键优势解析 【免费下载链接】thrust [ARCHIVED] The C parallel algorithms library. See https://github.com/NVIDIA/cccl 项目地址: https://gitcode.com/gh_mirrors/thr/thrust Thrust是NVIDIA开发的C并行算法库,基于标…

作者头像 李华
网站建设 2026/3/14 9:51:21

Ink/Stitch刺绣设计扩展全方位解析

在数字刺绣创作领域,Ink/Stitch作为Inkscape的强力扩展工具,为设计师们打开了全新的创作维度。这款开源软件将专业的机器刺绣设计功能无缝集成到矢量图形编辑环境中,让每位创意工作者都能轻松驾驭复杂的刺绣工艺。 【免费下载链接】inkstitch…

作者头像 李华
网站建设 2026/3/24 9:09:26

Proteus8.16下载安装教程:小白指南之软件部署入门

从零开始搭建电子仿真平台:Proteus 8.16 安装实战全记录 最近带学生做毕业设计,好几个同学卡在第一步—— 连 Proteus 都装不上 。打开电脑不是弹“缺少 DLL 文件”,就是启动闪退、授权失败……看着他们一脸茫然地问我:“老师&…

作者头像 李华
网站建设 2026/3/22 7:51:54

HunyuanVideo-Foley:AI音效生成终极指南,让无声视频秒变专业大片

HunyuanVideo-Foley:AI音效生成终极指南,让无声视频秒变专业大片 【免费下载链接】HunyuanVideo-Foley 项目地址: https://ai.gitcode.com/tencent_hunyuan/HunyuanVideo-Foley 腾讯混元实验室最新开源的HunyuanVideo-Foley是一个革命性的端到端…

作者头像 李华