类与对象的介绍

news2024/9/21 0:25:04

目录

一、类与实例的关系

二、快速入门-面向对象的方式解决养猫问题

三、类和对象的区别和联系

四、对象在内存中的存在形式

五、属性/成员变量

1、基本介绍

2、注意事项和细节说明

六、类的定义和使用

1、如何定义类

2、如何创建对象

3、如何访问属性

七、对象的传递机制

八、对象的布尔值


一、类与实例的关系

1、文档:9. 类 — Python 3.12.4 文档

2、类与实例的关系-示意图

二、快速入门-面向对象的方式解决养猫问题

# 定义一个猫类,age,name,color是属性,或者称为成员变量
# Cat 类,就是自己定义的一个新类型

# 定义 Cat类
class Cat:
    # age,name,color是属性
    name = None  # 名字属性
    age = None  # 年龄属性
    color = None  # 颜色属性

# 通过Cat类,创建实例(实例对象/对象)
cat1=Cat()

# 通过对象名.属性名,可以给各个属性赋值
cat1.name="小白"
cat1.age=2
cat1.color="白色"

# 通过对象名.属性名,可以访问到属性
print(f"cat1的信息为:name:{cat1.name} age:{cat1.age} color:{cat1.color} ")

三、类和对象的区别和联系

通过上面的案例可以看出:

1、类是抽象的,概念的,代表一类事物,比如人类,猫类....,即它是数据类型

2、对象是具体的,实际的,代表一个具体的事物,即实例

3、类是对象的模板,对象是类的一个个体,对应一个实例

四、对象在内存中的存在形式

五、属性/成员变量

1、基本介绍

1)类中定义的属性(变量),我们也称为:成员变量

2)属性是类的一个组成部分,一般是字符串、数值,也可以是其他类型(list、dict等),比如前面定义的Cat类的name、age,就是属性

2、注意事项和细节说明

1)属性的定义语法同变量,示例:属性名=值,如果没有值,可以赋值None

None是Python的内置常量,通常被用来代表空值的对象

2)如果给属性指定的有值,那么创建就有值

# 定义 Cat类
class Cat:
    # age,name,color是属性
    name = "小白"  # 名字属性
    age = 2  # 年龄属性
    color = "白色"  # 颜色属性

# 通过Cat类,创建实例(实例对象/对象)
cat1=Cat()

# 通过对象名.属性名,可以访问到属性
print(f"cat1的信息为:name:{cat1.name} age:{cat1.age} color:{cat1.color} ")
# cat1的信息为:name:小白 age:2 color:白色

六、类的定义和使用

1、如何定义类

定义类的基本语法:

class 类名:

        属性...

        行为...

1)上面是定义类的基本语法,还有很多细节

2)class是关键字,表示后面定义的是类

3)属性,即定义在类中的变量(成员变量)

4)行为,即定义在类中的函数(成员方法)

2、如何创建对象

基本语法:

对象名 = 类名()

cat = Cat()

3、如何访问属性

基本语法:

对象名.属性名

cat.name

cat.age

七、对象的传递机制

# 对象的传递机制
class Person:
    age=None
    name=None

p1=Person()
p1.age=10
p1.name="小明"
p2=p1  # 把p1赋给p2,即p2指向p1
print(p2.age)  # 10
print(f"p1.name地址:{id(p1.name)} p2.name地址:{id(p2.name)}")  # 地址是相同的

八、对象的布尔值

1、Python一切皆为对象,所有对象都有一个布尔值,通过内置函数bool()可以获取对象的布尔值

2、下面对象的布尔值为False

1)False

2)数值0

3)None

4)空字符串

5)空列表

6)空元组

7)空字典

8)空集合

3、案例说明

# 对象的布尔值
print("---以下对象的布尔值为False---")
print(bool(False))
print(bool(0))
print(bool(None))
print(bool(""))  # 空字符串
print(bool([]))  # 空列表
print(bool(()))  # 空元组
print(bool({}))  # 空字典
print(bool(set()))  # 空集合

# 因为所有对象都有一个布尔值,有些代码直接使用对象的布尔值做判断
content=""
if content:
    print(f"hi {content}")
else:
    print("空字符串")

lst=[1,2]
if lst:
    print(f"lst:{lst}")
else:
    print("空列表")

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深⼊理解指针(4)

1. 回调函数是什么? 2. qsort使⽤举例 3. qsort函数的模拟实现 1. 回调函数是什么? 1. 回调函数是什么? 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针(地址)作为参数传递给另⼀个函数&#xff…

【Python】Numpy概述安装及使用

文章目录 Numpy概述Numpy开发环境搭建Numpy使用创建数组创建一维数组创建二维数组创建三维数组,array()函数ndmin参数的使用array()函数dtype参数的使用随机数创建 Numpy概述 Numpy是科学计算基础库,提供大量科学计算相关功能,比如数据统计&…

SpringMabatis学习笔记1

今日内容:搭建mybatis ORM 配置数据源 $#的区别 增删改 ORM (Object Relational Mapping,对象关系映射)是一种数据持久化技术,它在对象模型和关系型数据库之间建立起对应关系,并且提供了一种机制&#xff0…

2024软考注意!!《系统规划与管理师》大概率要改版,新教材已出

系统规划与管理师考试是全国计算机技术与软件专业技术资格考试的高级水平考试之一,一年仅考一次,也是2024年下半年的4门高级考试中,最适合零基础考生的高级科目。近日在国家版本数据中心,查到系统规划与管理师已经有2024最新版的教…

Windows常用的运行命令

cmd - 命令提示符 cmdcalc - 打开计算器 calcservices.msc - 本地服务设置 services.msccontrol - 打开控制面板 controlwinver - 查看windows版本 winvermstsc - 连接远程电脑 mstsc ms t(terminial终端) s(service服务)c(client客户端) mstscmspaint - 打开画图 m…

特斯拉智驾方案演变过程

目录 一、概述二、特斯拉算法的发展历程2.1 特斯拉第一代算法:HydraNets2.2 特斯拉第二代算法:BEV + Transformer2.3. 特斯拉第三代算法:占据网络2.4. 特斯拉第四代算法:端到端方案三、智驾技术特点3.1 算法3.2 算力3.3 数据四、端到端挑战一、概述 在当今科技飞速发展的时…

智能家居沙盘系统-智慧家居沙盘系统

智能家居和物联网技术是当前科技领域的热门话题,随着各类智能家居产品的不断推出,智能家居市场也逐渐呈现出蓬勃发展的态势。智能家居快速发展,而物联网相关人才供应远远不足。高校开展智能家居工程及设计人才教育培养具有重大意义。 基本介绍…

一键登录,打造华为账号便捷新体验

作为鸿蒙世界的通行证,一个华为账号可以登录所有的HarmonyOS设备,为HarmonyOS设备无缝衔接和协同使用提供诸多便利。HarmonyOS SDK华为账号服务(Account Kit)提供简单、快速、安全的登录功能,让用户快捷地使用华为账号…

04:【stm32】LED编程和按键控制

LED编程和按键控制 1、LED编程1.1、点亮一课LED灯 2、按键控制2.1、通过一个按钮控制LED灯的亮灭 1、LED编程 1.1、点亮一课LED灯 首先,我们想象一下,让LED灯点亮,引脚应该是输出模式,那么应该是通用模式,还是复用模式…

视频如何生成二维码(自动生成二维码)完整教程

在企业中,产品视频二维码怎么制作,产品二维码怎么实现微信扫码便捷观看?上图文教程:视频二维码生成器/上传视频自动生成二维码完整教程。 目前市面上有很多工具,可以实现,比如草料二维码、酷播云二维码等等…

软考:软件设计师 — 10.面向对象技术

十. 面向对象技术 1. 面向对象基本概念 (1)对象与类相关概念 在面向对象的系统中,对象是基本的运行时的实体,它既包括数据(属性),也包括作用于数据的操作(行为)。一个…

计算机组成原理 —— 微操作控制器

计算机组成原理 —— 微操作控制器 指令,微操作,微指令和微程序之间的关系指令 (Instruction)微操作 (Micro-operation)微指令 (Microinstruction)微程序 (Microprogram)关系示例 微程序控制器的基本结构微程序控制器的基本结构工作流程 微指令的基本格式…

AI技巧---1个万能公式,让AI帮你快速写汇报、方案、总结

现阶段我们跟AI沟通,主要是通过提示词。提示词怎么写,其实就决定了AI输出内容的质量和效果,这是用AI给公文写作提效的基本技能。 但如果你已经尝试过用AI写公文,可能会有这样的感受,就是AI输出的内容很多都是正确的废…

【PG高可用】Repmgr源码分析之主库监控

repmgr需要在集群中每个节点上以扩展的形式安装插件,运行在每个节点上的repmgrd可以监控复制以及执行故障转移或切换等操作增强 PostgreSQL 的内置复制功能。 如何可靠快速的监控主节点故障一般是所有数据库高可用程序中都会有的环节,本篇内容主要介绍不…

掌握 Linux 信号机制的技巧与策略

目录 一.信号的产生1.信号的产生(预备)2.异常(1).硬件异常(2).core dump(3).软件条件产生信号 二.信号的保存1.信号的发送2.block.pending.handler(保存)(1).sigset_t类型 三.信号的捕捉处理1.什么时候捕捉2.三顾进程地址空间3.如…

深圳水务展|2025深圳国际水务科技博览会

2025深圳国际水务科技博览会 展会主题: 新质生产力赋能水务产业高质量发展 展会时间:2025年7月24-26日 展会地点:深圳会展中心(福田) 主办单位: 广东省水利学会 深圳市水务学会 协办单位: 中国水利…

发论文idea来了!小样本学习+目标检测,12个创新点汇总

在一些特定应用领域,获取大规模且高质量标注的数据十分困难,比如医学图像分析。为了解决这个问题,研究者们提出了小样本目标检测。 小样本目标检测是一种结合了小样本学习和目标检测两者优势的技术,能够在有限的训练数据下&#…

elementPuls_Treeg更改颜色

elementPuls_Treeg更改颜色 .el-tree {background: transparent;color: #fff;}:deep(.el-tree-node__content:hover) {background: rgba(2, 167, 240, 0.5);}//选中的背景色:deep(.el-tree--highlight-current.el-tree-node.is-current> .el-tree-node__content) {backgrou…

上班族必备!这款免费录屏工具让你工作效率翻倍

www.bandicam.com/downloads/现在还依稀记得疫情爆发的那一年在学校上网课的场景,在家里上着网课担心错过老师讲的重点,就特地找了录屏的工具来使用,帮我录制重点片段,今天就针对录屏的工具整理了四款免费的录屏软件,有…

Linux系统驱动(五)

文章目录 一、实现机制二、字符设备驱动分布实现流程三、添加自己的系统调用函数1. 找到系统调用文件2. 找到 一、实现机制 应用层 vfs层 驱动层 字符设备按照字节流顺序访问,但是实际它提供了无序访问的功能 vi -t sys_open 内核中通过inode号可以唯一的找到一…