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

Python-面向对象

面向对象

  • 对象、类
  • 继承
  • 多态

对象、类

类 Person

  • 创建类:Person
  • 初始化方法:__init__
  • 默认名称:人类
默认
  • 代码
# coding:utf-8class Person:def __init__(self, name='人类'):self.name = nameif __name__ == '__main__':p = Person()print("名称:" + p.name)
  • 运行

在这里插入图片描述

自定义名称
  • 代码
# coding:utf-8class Person:def __init__(self, name='人类'):self.name = nameif __name__ == '__main__':# p = Person()# print("名称:" + p.name)p1 = Person('刘德华')print("名称:" + p1.name)
  • 运行

在这里插入图片描述

继承

父类 Animal

  • 创建类:Animal
  • 初始化方法:__init__
  • 默认名称:动物
  • 定义方法:eatsleepspeak
默认
  • 代码
# coding=utf-8class Animal:def __init__(self, name='动物'):self.name = namedef eat(self):print(self.name + ' 吃饭了')def sleep(self):print(self.name + ' 睡觉了')def speak(self):print(self.name + ' 说话了')if __name__ == '__main__':animal = Animal()animal.eat()animal.sleep()animal.speak()
  • 运行

在这里插入图片描述

自定义名称
  • 代码
# coding=utf-8class Animal:def __init__(self, name='动物'):self.name = namedef eat(self):print(self.name + ' 吃饭了')def sleep(self):print(self.name + ' 睡觉了')def speak(self):print(self.name + ' 说话了')if __name__ == '__main__':# animal = Animal()animal = Animal('一号动物')animal.eat()animal.sleep()animal.speak()
  • 运行

在这里插入图片描述

子类 Cat

  • 创建类:Cat
  • 继承父类:Animal
  • 初始化方法:__init__ 调用父类的初始化方法
    • 父类名._init_(self, 父类同类参数)
    • super(子类名,self)._init_(父类同类参数)
    • super()._init_(self,父类同类参数) 推荐使用
  • 默认名称:小猫
  • 重写父类方法:eatspeak
    • 子类定义父类同名同参方法即为重写
默认
  • 代码
# coding=utf-8from test.Animal import Animalclass Cat(Animal):def __init__(self, name='小猫'):# super(Cat, self).__init__(name)# Animal.__init__(self,name)super().__init__(name) # 推荐使用def eat(self):print(self.name + ' 吃猫粮了')def speak(self):print(self.name + ' 喵喵喵')if __name__ == '__main__':cat = Cat('小花')cat.eat()cat.sleep()cat.speak()
  • 运行

在这里插入图片描述

自定义名称
  • 代码
# coding=utf-8from test.Animal import Animalclass Cat(Animal):def __init__(self, name='小猫'):# super(Cat, self).__init__(name)# Animal.__init__(self,name)super().__init__(name) # 推荐使用def eat(self):print(self.name + ' 吃猫粮了')def speak(self):print(self.name + ' 喵喵喵')if __name__ == '__main__':cat = Cat('小花')cat.eat()cat.sleep()cat.speak()
  • 运行

在这里插入图片描述

子类 Dog

  • 创建类:Dog
  • 继承父类:Animal
  • 初始化方法:__init__ 调用父类的初始化方法
    • 父类名._init_(self, 父类同类参数)
    • super(子类名,self)._init_(父类同类参数)
    • super()._init_(self,父类同类参数) 推荐使用
  • 默认名称:小狗
  • 重写父类方法:eatspeak
    • 子类定义父类同名同参方法即为重写
默认
  • 代码
# coding=utf-8from test.Animal import Animalclass Dog(Animal):def __init__(self, name='小狗'):super().__init__(name)def eat(self):print(self.name + ' 吃狗粮了')def speak(self):print(self.name + ' 汪汪汪')if __name__ == '__main__':dog = Dog()dog.eat()dog.sleep()dog.speak()
  • 运行

在这里插入图片描述

自定义名称
  • 代码
# coding=utf-8from test.Animal import Animalclass Dog(Animal):def __init__(self, name='小狗'):super().__init__(name)def eat(self):print(self.name + ' 吃狗粮了')def speak(self):print(self.name + ' 汪汪汪')if __name__ == '__main__':dog = Dog('小黑')dog.eat()dog.sleep()dog.speak()
  • 运行

在这里插入图片描述

多态

  • 人饲养动物:猫、狗
  • 增加饲养方法:feed

饲养猫

  • 代码
# coding:utf-8
from test.Cat import Catclass Person:def __init__(self, name='人类'):self.name = namedef feed(self, animal):animal.eat()if __name__ == '__main__':p = Person()print("名称:" + p.name)print("----------饲养猫----------")cat = Cat('小花猫')p.feed(cat)
  • 运行
    在这里插入图片描述

饲养狗

  • 代码
# coding:utf-8
from test.Cat import Cat
from test.Dog import Dog
class Person:def __init__(self, name='人类'):self.name = namedef feed(self, animal):animal.eat()if __name__ == '__main__':p = Person()print("名称:" + p.name)print("----------饲养猫----------")cat = Cat('小花猫')p.feed(cat)print("----------饲养狗----------")dog = Dog('小花狗')p.feed(dog)
  • 运行
    在这里插入图片描述
http://www.lqws.cn/news/128773.html

相关文章:

  • RabbitMQ 在解决数据库高并发问题中的定位和核心机制
  • 数据结构与算法学习笔记(Acwing 提高课)----动态规划·树形DP
  • 《小明的一站式套餐服务平台:抽象工厂模式》
  • StarRocks与Apache Iceberg:构建高效湖仓一体的实时分析平台
  • 物联网控制技术期末复习 知识点总结 第二章 单片机
  • 【Python训练营打卡】day43 @浙大疏锦行
  • 高并发区块链系统实战:从架构设计到性能优化
  • VS代码生成工具ReSharper v2025.1——支持.NET 10和C# 14预览功能
  • WARNING! The remote SSH server rejected x11 forwarding request.
  • 查找 Vue 项目中未使用的依赖
  • ffmpeg(三):处理原始数据命令
  • 网络编程之TCP编程
  • Ethernet IP转Modbus网关在热泵机组中的协议转换技术实现
  • webpack打包学习
  • Linux操作系统Shell脚本概述与命令实战
  • 标识符关键字
  • 论文阅读笔记——Large Language Models Are Zero-Shot Fuzzers
  • 【读代码】从预训练到后训练:解锁语言模型推理潜能——Xiaomi MiMo项目深度解析
  • NLP常用工具包
  • 打卡第36天:模型可视化以及推理
  • [Linux] Linux GPIO应用编程深度解析与实践指南(代码示例)
  • 乘用车自动驾驶和非乘用车(矿车,卡车)自动驾驶区别
  • 从传统 RAG 到知识图谱 + Agent
  • MySQL补充知识点学习
  • Java中Git基础操作详解(clone、commit、push、branch)
  • 高防IP可以防护什么攻击类型?企业网络安全的第一道防线
  • 【投稿优惠】2025年人工智能与图像处理国际会议(AIIP 2025)
  • (eNSP)配置WDS手拉手业务
  • Python绘图库及图像类型
  • Linux系统-基本指令(6)