python面向对象

目录

初识对象

类的成员方法

类和对象

构造方法

魔术方法

__str__

 __lt__

__le__

 __eq__

 封装

私有成员

 继承

 单继承

多继承

 pass

复写

类型注解

1 变量的类型注解

方法1 使用:

方法2 注释

 应用场景

2 函数(方法)的类型注解

3 混合类型注解

多态


初识对象

#设计一个类
class Student:name = Nonegender = Noneage =None
#创建一个对象
stu1 = Student()
#给对象赋值
stu1.name = "小明"
stu1.gender = "男"
stu1.age = 1
#获取对象中的信息
print(f"{stu1.name}")
print(f"{stu1.gender}")
print(f"{stu1.age}")

类的成员方法

方法:类内部的函数

函数:类外面的函数

self 表示类对象自身的意思

#定义一个带有成员方法的类
class Student:name = None  #学生姓名def sayhi(self):print(f"大家好,我是{self.name},欢迎大家多多关照")def sayhi2(self,msg):print(f"大家好,我是{self.name},{msg}")#创建对象
stu = Student()
stu.name = "小明"
stu.sayhi2("嘿嘿")
#创建对象
stu2 = Student()
stu2.name = "小红"
stu2.sayhi2("咯咯咯")

类和对象

构造方法

#定义一个带有成员方法的类
class Student:name = None  #学生姓名age = Nonetel = Nonedef __init__(self, name, age, tel):self.name = nameself.age = ageself.tel = telprint("Student类创建了一个类对象")stu1 = Student("小明",12,"15151259461")
print(stu1.name)
print(stu1.age)
print(stu1.tel)

魔术方法

类里面内置的方法

类里面内置的方法, 方法名字前后都有_

__str__

对象 转字符串

 __lt__

比较大小 >  <,返回true 或 false

#定义一个带有成员方法的类
class Student:name = None  #学生姓名age = Nonedef __init__(self, name, age):self.name = nameself.age = agedef __lt__(self, other):return self.age < other.agestu1 = Student("小明",12)
stu2 = Student("小红",15)print(stu1 < stu2)

 

__le__

   >= <= 比较 , 返回true 或 false
 

 __eq__

比较对象是否相等

#定义一个带有成员方法的类
class Student:name = None  #学生姓名age = Nonedef __init__(self, name, age):self.name = nameself.age = agedef __eq__(self, other):return self.age == other.agestu1 = Student("小明",12)
stu2 = Student("小红",12)print(stu1 == stu2)

 封装

将现实世界的属性和行为 封装到类中, 描述为成员变量、成员方法

私有成员

变量名以__开头

方法名以__开头

私有对象无法被类对象使用,但是可以被其他成员使用

 继承

 单继承

class Mum:ear = "圆耳朵"face = "圆脸"def smile(self):print ("爱笑")class Baby(Mum):eye = "单眼皮"def english(self):print("英语学得好")bao = Baby()
print(bao.ear)
print(bao.face)
print(bao.eye)
bao.smile()
bao.english()

多继承

如果继承的重复了,继承的第一个父类优先级高 (左边的)

class Mum:face = "圆脸"def smile(self):print ("爱笑")class Dad:football = "会踢球"class Baby(Mum,Dad):eye = "单眼皮"def english(self):print("英语学得好")bao = Baby()
print(bao.face)
print(bao.eye)
bao.smile()
bao.english()
print(bao.football)

 pass
复写

子类继承了父类的成员属性或成员方法,并重新定义

复写后如果想调用父类的成员, 有两种方法

类型注解

1 变量的类型注解
方法1 使用:

方法2 注释

 应用场景

 

2 函数(方法)的类型注解

 

3 混合类型注解

类型太多了,Union帮助注解


#使用Union类型,必须先导包
from typing import Unionlist1:list[Union[int,str,bool]] = [1,"sun",2,True,3]def fun(data :Union[int,str,bool]) -> Union[int,str,bool]:pass

多态

抽象类

class Animal:def shout(self):passclass Dog(Animal):def shout(self):print("汪汪")class Cat(Animal):def shout(self):print("喵喵")#函数参数传入抽象父类对象
def jiao(animal:Animal):animal.shout()
#创建子类对象
dog = Dog()
cat = Cat()
jiao(dog)
jiao(cat)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26929.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++的类型转换

C语言中的类型转换 在C语言中&#xff0c;如果赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或者返回值类型与 接收返回值类型不一致时&#xff0c;就需要发生类型转化&#xff0c;C语言中总共有两种形式的类型转换&#xff1a;隐式类型 转换和…

计算机网络-实验3拓扑结构

三、实验拓扑结构、实验步骤及结果分析 1. 实验拓扑结构 2. 实验步骤 3. 结果分析

[ISP] AE 自动曝光

相机通过不同曝光参数&#xff08;档位快门时间 x 感光度 x 光圈大小&#xff09;控制进光量来完成恰当的曝光。 自动曝光流程大概分为三部分&#xff1a; 1. 测光&#xff1a;点测光、中心测光、全局测光等&#xff1b;通过调整曝光档位使sensor曝光在合理的阈值内&#xff0…

聊一聊 IM 如何优化架构?

IM 系列 im doc 实时通讯文档仓库 聊一聊 IM 是什么&#xff1f; IM 即时通讯系统概览 聊一聊 IM 要如何设计&#xff1f; 聊一聊 IM 要如何设计功能模块&#xff1f; 聊一聊 IM 要如何进行架构设计&#xff1f; 聊一聊 IM 要如何进行技术选型&#xff1f; 聊一聊 IM 要…

开启mysql的binlog日志

mysql版本5.7 1.查看是否开启bin_log show global variables like’log_bin’; off的话需要先开启 在mysql的文件夹目录中找到my.ini 加一行log-bin“C:/ProgramData/MySQL/MySQL Server 5.7/logs/log-bin” 并提前创建好目录 2.数据库会把日志放进logs目录中 3.查看log日…

OpenHarmony4.1-轻量与小型系统ubuntu开发环境

因OpenHarmony官网提供包含轻量、小型与标准系统的全量代码非常宠大&#xff0c;解包后大概需要70G以上硬盘空间&#xff0c;如要编译标准系统则需要140G以上空间。 如硬盘空间有限与只使用轻量/小型OpenHarmony系统&#xff0c;则可以下载并直接使用本人裁剪源码过的ubuntu硬盘…

图论题目。

图论题目 检测环(dfsbfs)课程表 拓扑排序&#xff08;dfsbfs&#xff09;课程表2 二分图&#xff08;dfs,bfs&#xff09;判断二分图可能的二分法 Kruskal算法和Prim算法连接所有点的最小费用 Dijkstra算法概率最大的路径网络延时时间 检测环(dfsbfs) 课程表 题目 dfs: clas…

2025春新生培训数据结构(树,图)

教学目标&#xff1a; 1&#xff0c;清楚什么是树和图&#xff0c;了解基本概念&#xff0c;并且理解其应用场景 2&#xff0c;掌握一种建图&#xff08;树&#xff09;方法 3&#xff0c;掌握图的dfs和树的前中后序遍历 例题与习题 2025NENU新生培训&#xff08;树&#…

如何防止Python网络爬虫爬取网站内容

要防止Python网络爬虫爬取网站内容&#xff0c;可以从以下几个方面入手&#xff1a; 遵守Robots.txt文件&#xff1a;首先&#xff0c;网站管理员可以通过robots.txt文件明确告知爬虫哪些页面可以抓取&#xff0c;哪些不可以。爬虫在抓取之前应先检查该文件&#xff0c;尊重网站…

Java数据结构第十六期:走进二叉树的奇妙世界(五)

专栏&#xff1a;Java数据结构秘籍 个人主页&#xff1a;手握风云 目录 一、非递归实现遍历二叉树 1.1. 二叉树的前序遍历 1.2. 二叉树的中序遍历 1.3. 二叉树的后序遍历 一、非递归实现遍历二叉树 1.1. 二叉树的前序遍历 我们这里要使用栈来进行实现。我们反向思考一下为…

yolov8_pose模型,使用rknn在安卓RK3568上使用

最近在使用rknn的一些功能,看了看文档以及自己做的一些jni,使用上yolov8_pose的模型. 1.我们先下载一下rknn的模型功能代码,rk有自己做的一套demo 地址:GitHub - airockchip/rknn_model_zooContribute to airockchip/rknn_model_zoo development by creating an account on G…

大模型推理时的尺度扩展定律

大模型推理时的尺度扩展定律 FesianXu at 20250212 at Wechat Search Team 前言 大模型的尺度扩展定律告诉我们&#xff1a;『LLM的性能会随着模型的参数量、模型的训练量、模型的训练数据量的增加而增加』。训练存在尺度扩展定律&#xff0c;测试也存在尺度扩展定律&#xff…

ubuntu防火墙iptables

文章目录 步骤开启自启防火墙iptables规则链Chains的区别 在 Ubuntu 上使用 iptables 配置防火墙并保证服务可用 步骤 #防火墙状态 systemctl status iptables systemctl start iptables #开启防火墙并且开启22端口 systemctl start iptables && iptables -A INPUT -p…

聊一聊 IM 如何优化监控

IM 系列 im doc 实时通讯文档仓库 聊一聊 IM 是什么&#xff1f; IM 即时通讯系统概览 聊一聊 IM 要如何设计&#xff1f; 聊一聊 IM 要如何设计功能模块&#xff1f; 聊一聊 IM 要如何进行架构设计&#xff1f; 聊一聊 IM 要如何进行技术选型&#xff1f; 聊一聊 IM 要…

[Windows] 批量为视频或者音频生成字幕 video subtitle master 1.5.2

Video Subtitle Master 1.5.2 介绍 Video Subtitle Master 1.5.2 是一款功能强大的客户端工具&#xff0c;能够批量为视频或音频生成字幕&#xff0c;还支持批量将字幕翻译成其他语言。该工具具有跨平台性&#xff0c;无论是 mac 系统还是 windows 系统都能使用。 参考原文&a…

探索紧急灾难处理的智慧:基于Neo4j的知识图谱问答系统

探索紧急灾难处理的智慧&#xff1a;基于Neo4j的知识图谱问答系统 在灾难突发的瞬间&#xff0c;时间就是生命&#xff01;我们为您带来了一款基于Neo4j的紧急灾难突发处理知识图谱问答系统&#xff0c;助您快速获取至关重要的信息&#xff0c;提升应急响应效率&#xff01; …

蓝桥杯(握手问题)

小蓝组织了一场算法交流会议&#xff0c;总共有 50 人参加了本次会议。在会议上&#xff0c;大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手 (且仅有一次)。 但有 7个人&#xff0c;这 7 人彼此之间没有进行握手 (但这 7 人与除这 7 人以外…

DeepSeek开源周 Day04:从DualPipe聊聊大模型分布式训练的并行策略

DualPipe简介 今天是DeepSeek开源周的第四天&#xff0c;官方开源了一种新型并行计算优化策略——DualPipe。 其实大家阅读过Deepseek-V3技术报告的同学&#xff0c;对这个技术并不陌生。 开源地址&#xff1a;https://github.com/deepseek-ai/DualPipe 核心亮点 DualPipe&…

无人系统:未来科技的智能化代表

无人系统&#xff08;Unmanned Systems&#xff09;是指在不依赖人类直接干预的情况下&#xff0c;通过自主或远程控制方式完成任务的系统。随着科技的不断进步&#xff0c;特别是在人工智能、机器人学、传感技术、通信技术等领域的突破&#xff0c;无人系统在各行各业中得到了…

【Maven】入门介绍 与 安装、配置

文章目录 一、Maven简介1. Maven介绍2. Maven软件工作原理模型图 二、Maven安装和配置1. Maven安装2. Maven环境配置3. Maven功能配置4. IDEA配置本地Maven软件 一、Maven简介 1. Maven介绍 https://maven.apache.org/what-is-maven.html Maven 是一款为 Java 项目管理构建、…