7篇文章搞懂Python的类与对象

简介: 六节视频课+一节实战案例解析帮你彻底搞懂Python的类与对象!包括面向对象、对象的创建、类的属性和方法等多个知识介绍。

类与对象

本文集合了六节视频课+一节实战案例解析帮你彻底搞懂Python的类与对象!包括面向对象简介、对象的创建、类的属性和方法等多个知识介绍。

第一节:什么是面向对象?

Python是一门面向对象的编程语言:所谓的面向对象的语言,简单理解就是语言中的所有操作都是通过对象来进行的。

面向对象的编程思想,将所有的功能统一保存到对应的对象中。

这种方式编写的代码,比较容易阅读,并且比较易于维护,容易复用,这是它的优点。

但是也有缺点,这种方式编写,不太符合常规的思维,编写起来稍微麻烦一点>>点击链接了解更多有关如何编程才是面向对象?

第二节:类的简介

我们目前所学习的对象都是Python内置的对象,但是内置对象并不能满足所有的需求,所以我们在开发中经常需要自定义一些对象。

而类,简单理解,它相当于一个图纸。在程序中我们需要根据类来创建对象,所以,类就是对象的图纸!我们也称对象是类的实例(instance)。

如果多个对象是通过一个类创建的,我们称这些对象是一类对象,像 int() float() bool() str() list() dict() ... 这些都是类,请见如下代码:

a = int(10) # 创建一个int类的实例 等价于 a = 10

类是如何创建对象的?使用类来创建对象,就像调用一个函数一样>>点击链接了解更多内容

第三节:对象的创建流程

上节课我们介绍了使用类来创建对象,就像调用一个函数一样,那么它是如何完成相对应的功能的呢?

简化分为三步,首先创建一个变量,然后在内存中创建一个新对象,之后将对象的id赋值给变量。>>点击链接了解详细内容

第四节:类是如何定义的?

类和对象都是对现实生活中或程序中的内容的抽象。实际上所有的事物都是由两部分组成:数据(属性)和行为(方法)。

在类的代码块中,我们可以定义变量和函数,变量会成为该类实例的公共属性;函数会成为该类实例的公共方法。

定义变量
在类的代码块中,我们可以定义变量和函数,变量会成为该类实例的公共属性,所有的该类实例都可以通过 对象.属性名 的形式访问。

定义函数
在类中也可以定义函数,类中的定义的函数,我们称为该类实例的公共方法。所有的该类实例都可以通过 对象.方法名() 的形式调用方法。>>点击链接了解详细内容

第五节:类的属性和方法

在之前的课程中我们讲过为什么实例可以访问到类中的属性和方法?那是因为类中定义的属性和方法都是公共的,任何该类实例都可以访问。

当我们调用一个对象的属性时,解析器会先在当前对象中寻找是否含有该属性,如果有,则直接返回当前的对象的属性值,如果没有,则去当前对象的类对象中去寻找,如果有则返回类对象的属性值,如果没有则报错!

一般情况下,属性保存到实例对象中,而方法保存到类对象中。>>点击链接了解更多内容

第六节:类的特殊方法init

在类中可以定义一些特殊方法(魔术方法),特殊方法都是以__开头,__结尾的方法,特殊方法不需要我们自己调用。

init就是Python的一种特殊方法,会在对象创建以后离开执行,可以用来向新创建的对象中初始化属性,调用类创建对象时,类后边的所有参数都会依次传递到init()中。

到这里类与对象章节就基本结束了,总结一下类的基本结构>>点击链接查看类的基本结构总结

第七节:类与对象的案例实战案例解析

尝试自定义一个表示狗的类(Dog),它应该包括name、 age、gender、height等这些属性和jiao()、yao()、run()等这些行为。

可以自己先根据上面学习到的内容进行编写,具体的代码>>点击链接查看

但是思考一下:目前我们可以直接通过 对象.属性 的方式来修改属性的值,这种方式导致对象中的属性可以随意修改。这是非常的不安全的:值可以任意修改,不论对错。

现在我们就需要一种方式来增强数据的安全性
1.属性不能随意修改(我让你改你才能改,不让你改你就不能改)
2.属性不能修改为任意的值(年龄不能是负数)

有关类与对象的知识我们就讲到这里了,思考该如何才能保证数据的安全性呢?

获取更多知识请订阅Python学习站官方技术圈学习!

相关文章
|
2天前
|
存储 缓存 Java
深度解密 Python 虚拟机的执行环境:栈帧对象
深度解密 Python 虚拟机的执行环境:栈帧对象
36 13
|
2天前
|
索引 Python
Python 对象的行为是怎么区分的?
Python 对象的行为是怎么区分的?
8 3
|
2天前
|
存储 缓存 算法
详解 PyTypeObject,Python 类型对象的载体
详解 PyTypeObject,Python 类型对象的载体
11 3
|
1天前
|
Python
深入解析 Python 中的对象创建与初始化:__new__ 与 __init__ 方法
深入解析 Python 中的对象创建与初始化:__new__ 与 __init__ 方法
7 1
|
2天前
|
缓存 Java 程序员
一个 Python 对象会在何时被销毁?
一个 Python 对象会在何时被销毁?
9 2
|
2天前
|
API Python 容器
再探泛型 API,感受 Python 对象的设计哲学
再探泛型 API,感受 Python 对象的设计哲学
9 2
|
2天前
|
API Python
当调用一个 Python 对象时,背后都经历了哪些过程?
当调用一个 Python 对象时,背后都经历了哪些过程?
12 2
|
2天前
|
存储 API C语言
当创建一个 Python 对象时,背后都经历了哪些过程?
当创建一个 Python 对象时,背后都经历了哪些过程?
9 2
|
2天前
|
存储 C语言 Python
解密 Python 的变量和对象,它们之间有什么区别和联系呢?
解密 Python 的变量和对象,它们之间有什么区别和联系呢?
7 2
|
2天前
|
机器人 关系型数据库 Python
【Python篇】Python 类和对象:详细讲解(下篇)
【Python篇】Pyt hon 类和对象:详细讲解(下篇)
13 2