小甲鱼 发表于 2022-5-2 01:49:41

已有 25 人购买  本主题需向作者支付 5 鱼币 才能浏览 购买主题

小古比鱼 发表于 2022-5-5 16:55:22

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

fishcyou 发表于 2022-5-7 12:48:37

对象 = 属性 + 方法
https://pic.shejibiji.com/i/2022/05/07/6275f888d383a.png

小古比鱼 发表于 2022-9-26 09:11:51

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

最后,类中的每一个方法默认的第一个参数都是self(不能省略),代表传递给方法的实例对象本身,这样Python才知道到底是哪个对象调用了该方法。

dearfish 发表于 2022-12-3 01:29:20

太棒了,文字说明+导图推出了!


Loafer0 发表于 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

yanfeigao2005 发表于 2023-1-8 11:24:10

OOP有三个基本特征——封装、继承、多态。

不着调先生 发表于 2023-2-6 09:43:45

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

总结得很好

woshinendaddy 发表于 2023-3-17 23:01:58

我有一点小疑惑,一方面,定义类时的方法函数的默认参数self是形参,某一个实例对象调用后没有传递实参,self是怎么对应实例对象本身的呢?
一方面,实例对象调用方法时的形式是(instance.fanction()),不是告诉python是谁在调用了吗,为啥默认形式参数self就能起到这个作用呢

让我再睡一会儿 发表于 2023-4-16 21:52:39

Loafer0 发表于 2022-12-10 14:01
自己通过动手发现如果不采取 t1=Turtle(),t1.head=2的形式修改属性,直接采用Turtle().head=2去修改属性是 ...

使用 dir() 函数可以查看对象属性。可以传入类名 或者 类名加上小括号。如果用类名 或者 实例对象可以查看、添加或者修改属性,而使用类名加上小括号只能查看属性。好像是这吧?

k往事如烟k 发表于 2023-5-11 09:29:53

视频看不了了怎么办,哪里可以下载吗?

老月月 发表于 2023-7-4 08:32:28

坚持每日学习{:5_106:}

疾风之杰西 发表于 2024-3-25 11:39:46

坚持学习

563743696 发表于 2024-8-19 17:56:48

本帖最后由 563743696 于 2024-8-19 17:58 编辑

{:5_108:}
页: [1]
查看完整版本: 第058讲:类和对象(I)