面向对象回顾 | 学习笔记

简介: 快速学习 面向对象回顾

开发者学堂课程【Python入门 2020年版面向对象回顾】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10375


面向对象回顾


内容介绍:

一、  内容回顾

二、  __eq__和 is


一、内容回顾

魔法方法中,学完今天的内容,会更好的理解。昨天的学习中一直是用类来创建一个对象,当调用某一个方法时,这里是魔法方法会自己调用。

最开始写的面向对象的一个语句中 s = Student(‘张三’,18),这个 s 对象是由 Student 类创建出来的。然后给了s属性,一个是 name 叫张三,一个是 age 18。用 print(s.name)语句找到它的名字,用 s.say_hello()来说明打招呼的方式。

魔法方法的内容在昨天的学习上可能确实有点吃力,__init__()在创建一个对象的时候,会自动调用这个方法,对象里的所有参数会传到 self 中。

__del__()是在删除对象的时候会自动调用,它是可以手动调用的。直接打印对象会调用__repr__()__str__()中的一个,这俩个方法都必须要有返回值,返回一个字符串。

打印 p 其实就是调用 p __str__()或者是__repr()函数,拿到它们的结果之后在返回。class Person(object):语句中(object)是可以不加的,都是可以的。

__call__方法也是一个魔法方法,当加入一个对象 p 的函数调用的时候,会直接调用__call__方法,执行方法里的内容。这个方法可以传许多参数,有可变参数。其实这个方法在讲的时候,内容较多,但不是太难。

当写一个 p 后会自动调用这个方法,这个方法把对象当初函数在调用,这是很少见的,直接是对象后面加入了一个括号。只要知道写一个对象加上括号,会自动调用__call__方法并执行。


二、__eq__is

之前说过==的本质就是两个对象做等等比较的时候,实际上就是调用对象的__eq__方法,看__eq__方法的结果。

is是用来判断两个对象是不是同一个对象;==是用来判断两个对象的内容是不是一致的,调用__eq__方法。

举例

num1 = [1,2,3]

num2 = [1,2,3]

print(num1 == num2)

这个结果是 True 的原因,本质上是调列表的,这两个是列表的数据,调用列表的__eq__方法,它会比较一个个的值,看是否相等。

相关文章
|
1月前
什么叫做 “面向对象” 编程?
本文介绍了面向对象编程(OOP)的概念、核心组件(类和对象)、三大特性(封装、继承和多态)以及六大设计原则,强调了面向对象编程在提高代码的可重用性、模块化、扩展性和维护性方面的优点。
31 1
|
6月前
|
算法 Java 程序员
【C++专栏】C++入门 | 类和对象 | 面向过程与面向对象的初步认识
【C++专栏】C++入门 | 类和对象 | 面向过程与面向对象的初步认识
52 0
|
4月前
|
Java C++ iOS开发
|
6月前
|
人工智能 运维 Java
面向对象进阶
面向对象进阶
66 0
|
程序员 测试技术 C语言
c++面向对象程序设计入门
c++面向对象程序设计入门
157 0
|
数据挖掘 PHP 开发者
面向对象简单技术实现|学习笔记
快速学习面向对象简单技术实现
面向对象简单技术实现|学习笔记
|
存储 开发者 Python
面向对象练习 | 学习笔记
快速学习 面向对象练习
面向对象练习 | 学习笔记
|
开发者 Python
面向对象的介绍 | 学习笔记
快速学习 面向对象的介绍
106 0
面向对象的介绍 | 学习笔记
|
存储 PHP 开发者
面向对象基础总结|学习笔记
快速学习面向对象基础总结
|
数据安全/隐私保护 C++
C++面向对象程序设计简介
C++面向对象程序设计简介
194 1