鱼C论坛

 找回密码
 立即注册
查看: 5015|回复: 13

[知识点备忘] 第058讲:类和对象(I)

[复制链接]
发表于 2022-5-2 01:49:41 | 显示全部楼层 |阅读模式
购买主题 已有 25 人购买  本主题需向作者支付 5 鱼币 才能浏览
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-5 16:55:22 | 显示全部楼层
终于开始了类和对象的介绍!面向对象编程(OOP)的核心思想便是将代码封装起来,将相关数据和实现的函数封装在一起。OOP有三个基本特征——封装、继承、多态。本节简要介绍了封装,即将同属于一个类的所有对象共有的特征属性和行为能力封装到一起。Python中的对象有属性和方法,前者是对象的静态特征,以变量的形式呈现;后者是对象所能做的事情,以函数的形式呈现。我们首先需要用class关键字创建一个类(好比一个用于批量生产的模具),然后再通过类创造实际的对象;创建好的对象(实例对象)将拥有类定义的全部属性和方法,还可以随意修改其属性值,不会影响其他对象,正如一个人有了女朋友,并不代表所有人都有……另外,在Python中,整型变量是整数类的实例对象,字符串变量是字符串类的实例对象,列表、元组、字典、集合也类似。由此可见,说“Python到处是对象”一点都不为过!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 5 反对 0

使用道具 举报

发表于 2022-5-7 12:48:37 | 显示全部楼层
对象 = 属性 + 方法

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-9-26 09:11:51 | 显示全部楼层
小古比鱼 发表于 2022-5-5 16:55
终于开始了类和对象的介绍!面向对象编程(OOP)的核心思想便是将代码封装起来,将相关数据和实现的函数封 ...

最后,类中的每一个方法默认的第一个参数都是self(不能省略),代表传递给方法的实例对象本身,这样Python才知道到底是哪个对象调用了该方法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-12-3 01:29:20 | 显示全部楼层
太棒了,文字说明+导图推出了!


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-10 14:01:22 | 显示全部楼层
自己通过动手发现如果不采取 t1=Turtle(),t1.head=2的形式修改属性,直接采用Turtle().head=2去修改属性是无法修改属性的,我的理解是,采用后者这种方法没有创建对象,而是妄想直接修改类,因此没法修改属性。
代码如下
t1=Turtle()
Turtle().head=2
t1.head
1
Turtle().head
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2023-1-8 11:24:10 | 显示全部楼层
OOP有三个基本特征——封装、继承、多态。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-6 09:43:45 | 显示全部楼层
小古比鱼 发表于 2022-5-5 16:55
终于开始了类和对象的介绍!面向对象编程(OOP)的核心思想便是将代码封装起来,将相关数据和实现的函数封 ...

总结得很好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-17 23:01:58 | 显示全部楼层
我有一点小疑惑,一方面,定义类时的方法函数的默认参数self是形参,某一个实例对象调用后没有传递实参,self是怎么对应实例对象本身的呢?
一方面,实例对象调用方法时的形式是(instance.fanction()),不是告诉python是谁在调用了吗,为啥默认形式参数self就能起到这个作用呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-16 21:52:39 | 显示全部楼层
Loafer0 发表于 2022-12-10 14:01
自己通过动手发现如果不采取 t1=Turtle(),t1.head=2的形式修改属性,直接采用Turtle().head=2去修改属性是 ...

使用 dir() 函数可以查看对象属性。可以传入类名 或者 类名加上小括号。如果用类名 或者 实例对象可以查看、添加或者修改属性,而使用类名加上小括号只能查看属性。好像是这吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-11 09:29:53 | 显示全部楼层
视频看不了了怎么办,哪里可以下载吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-4 08:32:28 | 显示全部楼层
坚持每日学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-25 11:39:46 | 显示全部楼层
坚持学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-19 17:56:48 | 显示全部楼层
本帖最后由 563743696 于 2024-8-19 17:58 编辑

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-24 03:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表