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

【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("微积分") # 调用子类新增的方法

http://www.jsqmd.com/news/152541/

相关文章:

  • Keil5中STM32启动文件详解:零基础也能懂
  • Jellyfin直播故障终极修复指南:电视播放错误完整解决方案
  • 5个理由告诉你为什么OnePose是物体姿态估计的革命性突破
  • mapstruct lombok 集成简单配置
  • Manim终极指南:从数学曲线到3D分子动画的深度解析
  • ERP系统有哪些品牌?国内外三大类20家盘点 - 企业数字化观察家
  • 让节假日判断不再头疼:ChinaHoliday类的实用指南
  • 从开发困境到容器化部署:Docker技术实战全解析
  • 2025年比较好的烘烤冷冻薯条行业评价高榜单 - 行业平台推荐
  • WezTerm终端美化实战指南:从视觉疲劳到高效编程的完美蜕变
  • Atom Feed集成:嵌入网站实时通知机制
  • 中石化加油卡回收变现,解锁闲置资源新价值 - 京顺回收
  • 企业沟通平台有哪些?10款高口碑企业聊天软件推荐 - 企业数字化观察家
  • USB-Serial Controller D在SCADA系统中的集成:项目应用
  • Fisher自动补全:解锁Fish Shell高效操作的实用指南
  • 如何快速掌握阿尔比恩OL数据分析:从入门到精通的完整指南
  • GyroFlow视频稳定终极指南:从陀螺仪数据到专业级稳定效果
  • LVGL移植STM32常见问题解析:快速理解避坑方案
  • 2025年12月江苏徐州变压器系列企业综合推荐榜单 - 2025年品牌推荐榜
  • 微信小程序逆向分析实战:KillWxapkg工具完整解密指南
  • 2025年知名的塑料打包带厂家最新实力排行 - 行业平台推荐
  • COCO128数据集:快速上手指南
  • 5分钟实战指南:如何用CAMEL零成本生成高质量AI训练数据
  • 专业级音频播放器Volumio 2:从技术架构到用户体验的深度解析
  • OptiScaler跨平台超分辨率技术:让你的游戏帧率飙升300%
  • 7天掌握WeKnora:从零到精通的知识管理实战指南
  • 2025年上海ISO三体系认证服务商综合推荐 - 2025年品牌推荐榜
  • NocoDB终极部署指南:从零开始构建可视化数据库平台
  • 3个真实场景解析:conform.nvim如何解决团队协作中的代码格式化难题
  • 2025年口碑好的糖蜜转子泵厂家选购指南与推荐 - 行业平台推荐