7篇文章搞懂Python的类与对象-阿里云开发者社区

开发者社区> Python学习站> 正文

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学习站官方技术圈学习!

版权声明:本文中所有内容均属于阿里云开发者社区所有,任何媒体、网站或个人未经阿里云开发者社区协议授权不得转载、链接、转贴或以其他方式复制发布/发表。申请授权请邮件developerteam@list.alibaba-inc.com,已获得阿里云开发者社区协议授权的媒体、网站,在转载使用时必须注明"稿件来源:阿里云开发者社区,原文作者姓名",违者本社区将依法追究责任。 如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

Python学习资料大全,包含Python编程学习、实战案例分享、开发者必知词条等内容。

官方博客
官网链接