【python基础】类-初识类
1.面向对象思想
在认识类之前,我们需要理解面向对象思想和面向过程思想。
面向过程思想:要拥有一间房屋,面向过程像是自己来修盖房屋,如果需要经过选址、购买材料、砌墙、装修等步骤,面向过程编程,就相当于自己个人来负责这些事情,需要考虑屋子选在什么地方修建,要哪些材料,怎么砌墙,怎么装修等。每一步都需要自己来考虑,然后按照步骤一步一步实施。
面向对象思想:同样拥有一间房屋,但是面向对象更符合现实,类似于专业的人做专业的思想,选址、购买材料、砌墙等步骤由开发商这个对象来完成,作为我们个人自己不需要去考虑这些步骤具体如何实施,对于装修我们可以交给装修公司这个对象来完成,我们个人自己也不需要去考虑具体步骤如何实施,我们个人要做的只是去选择其中某个开发商修建的某套房屋即可,某个装修公司的某个装修方案即可。放在Python编程中,相当于开发商具有提供毛坯房的函数,装修公司有装修方案的函数,我们需要屋子的时候,直接可以去调用开发商的毛坯房函数、需要装修就去调用装修公司的装修方案函数。
所以面向对象思想的编程方式,更符合现实世界钟的事物和情景,面向过程的思想略显复杂,需要考虑过程中的每一步
2.创建类
在面向对象编程中,编写表示现实世界中的事物和情景,我们需要用到类,由类创建对象。类的话类似于上面例子中的开发商的共性信息集合,对象的话类似于就是具体到某个开发商的具体信息集合。使用面向对象编程可更加逼真的模拟现实情景。
使用类几乎可以模拟任何东西。下面我们就编写一个表示人的简单类,类的话表示的不是特定的人,而是任何一个人,里面编写的都是人的共性信息集合。
其语法格式:

我们新建一个people的.py文件,并编写程序如下所示:

通过上面的程序编写我们发现有以下几点:
1.有四个def关键字代表的函数,在类中的函数我们称为类的方法,前面学到的有关函数的一切都适用于方法,我们定义了初始化方法__init__、吃饭方法eat、睡觉方法sleep、学习方法study,虽然只是输出了一条语句,但是我们可以根据需求,继续扩展,这里只是举下例子。
2.init方法,是类的初始化方法,这个一个特殊的方法,每当根据人的类去创建人的实例时,Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。
3.__init__方法声明时有两个形参变量,self和name。其中self是必不可少的,还必须位于其他形参变量的前面。因为Python调用__init__方法来创建人的类所对应的人的实例时,将自动传入实参self。所以我们在向People这个类的实例对象传递实参变量数据时,只需传递name,self会自动传递,我们不需要手动传递它
4.每个与类相关联的方法调用都自动传递实参变量self,它是指向实例本身的引用,让实例能够访问类中的属性和方法,属性在这里就相当于name。
5.self.name = name这条语句,以self为前缀的变量都可供类中的所有方法使用,我们还可以通过类的任何实例来访问这些变量。这些变量叫做类的属性
3.创建实例
实例是类的对象,可将类视为有关如何创建实例的说明。People类是实例人的一系列说明,让Python知道如何创建表示特定人的实例。
其语法格式:
变量名 = 类名(实参变量1,实参变量2,,,,,实参变量n)
编写程序如下所示:

我们看到输出结果是一个People object说明这是一个People的对象
如果想输出people这个示例的属性信息,可以在People类编写一个__str__方法,这个其实是重写父类方法,后期会有所介绍。
编写程序如下所示:

这里需要注意的是方法__init__方法并未显式地包含return语句,但Python自动返回一个表示人的实例,我们将这个实例存储在变量people中。
4.访问类属性
要访问实例的属性,可使用句点表示法。
其语法格式:
实例变量名.类属性名
编写程序如下所示:

句点表示法在Python中很常用,这种语法演示了Python如何获悉属性的值。在这里Python先找到实例people,再查找与这个实例相关联的属性name,因为加self前缀的变量,就是与实例相关联的变量,这里找的就是self.name,因为此时self.name的值为'张三',所以输出结果即为'张三'
5.调用类方法
句点表示法不仅可以用来访问类属性,也可用来访问类方法。
其语法格式:
实例变量名.类方法
编写程序如下所示:

6.创建多个实例
我们创建多个人的实例,输出他们的名字并且输出他们正在干什么
编写程序如下所示:

每个人都是独立的一个实例,有自己的一组属性,能够执行相同的操作。我们可以根据一个类创建任意数量的实例。
【python基础】类-初识类的更多相关文章
- Python基础-面向对象初识--类
什么是类 具有相似功能和属性的一类实物 什么是对象 类的具体体现,具体到一个 面向对象的优势 1.类是一组相似功能的集合,使组织结构更加清晰和规范化 2.研究面向对象要有上帝的思维,用面向对象设计程序 ...
- Python基础之初识类和对象
我们在前面学习了解了面向过程编程,接下来我们一起来学习一下面向对象编程.其实不管是面向过程,还是面向对 象,说白了就是一种编程方式而已.既然是面向对象编程,顾名思义,此编程方式的落地需要使用 “类” ...
- python基础——使用元类
python基础——使用元类 type() 动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的. 比方说我们要定义一个Hello的class,就写一个hello. ...
- Python基础:新式类的属性访问
一.概述 二.准备工作 1.讨论对象 2.名词解释 三.实例绑定的属性访问 1.获取属性 一般规则 参考源码 示例验证 2.设置属性 一般规则 参考源码 示例验证 3.删除属性 一般规则 参考源码 示 ...
- 二十三. Python基础(23)--经典类和新式类
二十三. Python基础(23)--经典类和新式类 ●知识框架 ●接口类&抽象类的实现 # 接口类&抽象类的实现 #①抛出异常法 class Parent(object): ...
- python基础(14)-反射&类的内置函数
反射 几个反射相关的函数可参考python基础(10)-匿名函数&内置函数中2.2.4反射相关 类的一些内置函数 __str__()&__repr__() 重写__str__()函数类 ...
- Python基础知识:类
初级篇 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 1.面向对象三大特性 ...
- Python基础:元类
一.概述 二.经典阐述 三.核心总结 1.类的创建过程 2.元类的使用惯例 四.简单案例 1.默认行为 2.使用元类 五.实践为王 一.概述 Python虽然是多范式的编程语言,但它的数据模型却是 纯 ...
- 2015/9/28 Python基础(19):类的定制和私有性
用特殊方法定制类前面我们讲了方法的两个重要方面:首先,方法必须在调用前被绑定(到它们相应类的某个实例中):其次,有两个特殊方法可以分别作为构造器和解构器的功能,分别名为__init__()和__del ...
- 2015/9/20 Python基础(16):类和实例
面向对象编程编程的发展已经从简单控制流中按步的指令序列进入到更有组织的方式中,依靠代码块可以形成命名子程序和完成既定的功能.结构化的或过程性编程可以让我们把程序组织成逻辑快,以便重复或重用.创造程序的 ...
随机推荐
- 云上大数据存储:探究 JuiceFS 与 HDFS 的异同
HDFS 作为 Hadoop 提供存储组件,已经成为大数据生态里面数据存储最常用的选择,通常在机房环境部署. JuiceFS 是一个基于对象存储的分布式文件系统,用户可以在云上快速地搭建按需扩容的弹性 ...
- 大语言模型快速推理: 在 Habana Gaudi2 上推理 BLOOMZ
本文将展示如何在 Habana Gaudi2 上使用 Optimum Habana.Optimum Habana 是 Gaudi2 和 Transformers 库之间的桥梁.本文设计并实现了一个大模 ...
- vue之input输入框的几个事件
目录 事件简介 示例 事件简介 click 点击事件,一般不会用于input输入框,会用于按钮,用于输入框就有点像focus了,当点击输入框时会触发 blur 失去焦点事件,当失去焦点时会触发. fo ...
- [Linux]Linux中安装软件的方式?
近日处理安全漏洞时,出现了这样一个问题: 判断某软件组件是通过何种方式安装的. 知道是何种方式安装,才方便做进一步的解决(升级/配置/卸载等操作) 1 解压即用 例如: sublime_text.py ...
- IDEA中隐藏问文件或者文件夹
点击+,输入要隐藏的文件名,支持*通配符 回车确认
- redhat6安装10g rac过程中的报错
问题描述:redhat 6 来安装oracle10.2.0.1的集群,坑太多了,不建议这样安装,即使安装成功,在升级过程中也会有各种报错.redhat5安装还比较顺利,6就一路坑 1.缺少依赖 lib ...
- 【前端基础】(二)promise异步编排
☆promise异步编排 javascript众所周知只能支持单线程,因此各种网络请求必须异步发送,导致可能会出现很多问题,比如如下我们有三个文件,现在要求进行如下请求: ① 查出当前用户信息 ② 根 ...
- 【Spring5】数据库事务操作
Spring针对事务的操作 事务的概念:事务是数据库最基本的单元,逻辑上的一组操作,要么都成功,如果有一个操作失败则都失败. 事务的特性:ACID 原子性.一致性.隔离性.持久性 JavaEE环境三层 ...
- vue3+vant创建移动端项目,实战项目常见采坑记录
前言: 产品背景介绍 我所做的这个项目,刚开始是没有移动端需求的,等PC端做完了上线使用了几个月后,突然有一天产品经理找到我说是要做一个在PC端添加一个快速注册入口,用手机微信扫二位码进入移动端注册页 ...
- node使用react项目启动错误TSError: ⨯ Unable to compile TypeScript:
1.错误内容 return new TSError(diagnosticText, diagnosticCodes) ^ TSError: ⨯ Unable to compile TypeScript ...