【Python】面向对象编程—让你彻底理解类与对象

技术

很多同学对面向对象编程只闻其名,未解其意。或者有部分了解,但一知半解。

本文致力于让大家从原理出发,彻底理解面向对象中的类和对象。

本文目录

  1. 类与对象的原理

1.1 类与对象的定义

1.2 类与对象的关系

1.3 类名称的命名规则

1.4 属性的定义

1.5 方法的定义 2. 类与对象的实例

2.1 定义一个狗的类

2.2 使用类定义对象的格式

2.3 类中成员的访问

一、类与对象的原理

picture.image

1 类与对象的定义

类(class) :用来描述有相同的属性和方法的对象的集合,是对象属性和行为的描述。比如:人、狗、猫等都可以抽象成类。

对象: 类的具体实例。

2 类与对象的关系

首先来看下简单类结构的定义:

picture.image

伪代码如下:

  
class 类名称:  
 属性1的定义  
 属性2的定义  
 ....  
 属性n的定义  
 def 方法1(self, [其他参数]):  
        方法体中的代码  
 def 方法2(self, [其他参数]):  
 方法体中的代码  
 ....  
 def 方法n(self, [其他参数]):  
        方法体中的代码     

总体而言类是对象结构的定义和描述(类是对象的抽象),而对象是类的具体实例。 类是抽象的,不占用内存,而对象是具体的,占用存储空 间 。

比如我们可以通过狗的特征来抽象描述狗这个类,但是对于不同的狗,如狗1、狗2、狗3,就是狗这个类中的具体对象。

3 类名称的命名规则

  • 只能包含字母、数字、下划线,且不能以数字开头。

  • ②: 不能是系统关键字或保留字。

  • ③: 类名称首字母通常是大写。

  • ④: 类名称中有多个单词时,通常采用驼峰命名法,如StudentDormitory。

  • ⑤: 尽量做到见名知意。

    4 属性的定义

属性是类中存储 数据的空间 , 可以是 一个简单变量 ,也可以是一个复杂 类型的数据,如列表 、字典等。

类的属性分为两种,一种是类属性,另一种是实例属性。

类属性 定义在类中,但是在所有方法之外的属性。

实例属性: 定义在类的方法中,以“self.变量名”的方式定义的变量。

5 方法的定义

  • ①:方法是类中定义的函数,对数据进行处理。

  • ②:至少有一个形参self(可另取名)。

  • ③:其他方面与普通函数的定义相同。

二、类与对象的实例

picture.image

1 定义一个狗的类

平常我们见到狗一般有两个眼睛、一个嘴巴、一个口、一条尾巴、四条腿,会吃东西会叫。

我们把狗的这些特征抽象成类如下:

  
class Dog:  
 eyes = 2  
 #属性1的定义  
 nose = 1  
 #属性2的定义  
 mouth = 1  
 #属性3的定义  
 tail = 1  
 #属性4的定义  
 legs = 4  
 #属性5的定义  
 def eat(self):  
 print("最爱啃骨头")  
 #方法1  
 def bark(self):  
 print("汪汪汪")  
 #方法2

2 使用类定义对象的格式

使用类定义对象的方法一般有如下两种:

  • ① 类名(),比如Dog()。

  • ② 对象名=类名(),比如dog1=Dog()。

    3 类中成员的访问

类中成员的访问分为访问属性和访问方法两种。

  • 访问属性

方法一:类名.属性名,比如Dog.legs。

方法二:对象名.属性名,比如dog1.legs。

  • 访问方法

对象名.方法名(),比如dog1.eat()。

至此,面向对象中的类和对象已全部讲解完毕,感兴趣的同学可以自己到Python中实现一遍picture.image

往期回顾:

情人节表白烟花

520表白代码合集

黑客帝国中的代码雨

用python绘制皮卡丘

娱乐圈排行榜动态条形图绘制

Python人脸识别—我的眼里只有你

3D星空图V2版——添加背景图片和音乐

picture.image

picture.image

扫一扫关注我

13162366985

投稿 微信号、手机

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
KubeZoo: 轻量级 Kubernetes 多租户方案探索与实践
伴随云原生技术的发展,多个租户共享 Kubernetes 集群资源的业务需求应运而生,社区现有方案各有侧重,但是在海量小租户的场景下仍然存在改进空间。本次分享对现有多租户方案进行了总结和对比,然后提出一种基于协议转换的轻量级 Kubernetes 网关服务:KubeZoo,该方案能够显著降低多租户控制面带来的资源和运维成本,同时提供安全可靠的租户隔离性。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论