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

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.xdnf.cn/news/11890.html

相关文章:

  • 敏捷开发中如何避免过度加班
  • 银河麒麟V10ServerSP3中快速安装Minio及注册自启服务
  • 中小制造企业转型:低成本国产工业软件替代方案实践
  • 国标GB28181视频平台EasyGBS视频实时监控系统打造换热站全景可视化管理方案
  • 04.两数之和
  • 基于STM32F407的情绪感知智能助眠系统
  • 8天Python从入门到精通【itheima】-68(元组)
  • 数据“出国”需办“签证”: 如何申请数据出境安全评估?
  • 《校园生活平台从 0 到 1 的搭建》第一篇:创建项目与构建目录结构
  • 数据库表中「不是 null」的含义
  • Cursor 工具项目构建指南: Python 3.8 环境下的 Prompt Rules 约束
  • 项目实战——C语言扫雷游戏
  • 【Spark征服之路-2.1-安装部署Spark(一)】
  • 【Windows开发】Windows 事件跟踪 (ETW)
  • 【conda配置深度学习环境】
  • 机器学习的数学基础:线性模型
  • HDFS分布式存储 zookeeper
  • 【Spec2MP:项目管理之项目成本管理】
  • 字节开源FlowGram:AI时代可视化工作流新利器
  • Promtail采集服务器本地日志存储到Loki
  • 《最长单调子序列》题集
  • 细说C语言将格式化输出到FILE *stream流的函数fprintf、_fprintf_I、fwprintf、_fwprintf_I
  • 轴承排列自动运行 定时器 外中断 PWM部分程序
  • 使用 systemctl 实现程序自启动与自动重启
  • RAG技术解析:实现高精度大语言模型知识增强
  • 【运维实战】Rsync将一台主Web服务器上的文件和目录同步到另一台备份服务器!
  • 数据库基础篇
  • 文件解读|检索页(附:新版知网国内刊检索页下载方法!)
  • cv::FileStorage用法
  • 多线程爬虫使用代理IP指南