Python----类(好详细哦!!!)

为毛引入类???

在软件编程领域,编程方法不同可以分为 面向过程面向对象 的编程。

1.面向过程的编程

面向过程(Procedure Oriented, PO)是一种以过程为中心的编程方法。
缺点:
(1)数据变量代码出现重复现象
虽然出现了函数等方法,解决了一部分代码重复及利用问题,但是相似数据变量的重复定义还是存在,而且随着相关功能过程的增加而大幅度重复出现。
(2)当自定义函数变多时, 将产生新的管理和使用混乱
假设上百个自定义函数都存放在一起,将会产生什么问题?自定义函数名称多了,记忆、重复命名的问题怎么解决?不同程序员之间的自定义函数共享,在名称、功能识别等方面的冲突怎么解决?
(3)变量和函数的相关联性不强
虽然使用了自定义函数,但是该自定义函数与相关数据变量关联不紧密。若把函数单独共享给其他程序员,由于缺少相关数据变量的整体共享,会导致其他程序员使用函数的困难(能否同时共享数据和函数的问题)。

2.面向对象的编程

面向对象(Object Oriented,OO)是一种对现实世界理解和抽象的方法。
这里把现实世界里的任何事物都可以当作一个相对独立的对象来看待,如人、鸟、车、火车、飞机等;也可以是抽象的事情,如交通规则、战争、出行计划等。
将现实世界的事物进行抽象,就出现一种新的可以高效利用的数据类型——类。
定义:类(Class), 指把具有相同特性(数据)和行为(函数)的对象抽象为类。
数据通过类内的局部变量来实现对数据的读写操作。
函数可以实现对类的相关行为的操作。
示例: 抽象盒子
盒子是个长方体,由长、宽、高构成,盒子有不同的颜色、材质、类型,这些构成了一个盒子类的特性。
我们可以统计盒子里存放物品的数量、重量、金额,也可以计算有多少物品可以存放到盒子里,计算盒子的体积、表面积等。这些就是针对盒子的各种行为。
把抽象成类的过程归纳为:
(1) 归类。 把所有的大大小小的立方体盒子都归为一类。
(2)提取事物 特性。 把盒子的长、宽、高、颜色、材质、类型作为基本特性,进行提炼(事物特性是静态的,相对固定不变的)。
(3)确定事物相关的操作 行为,如统计、计算、查找、修改等操作行为。

编写第一个类——盒子类

1.求体积函数的Box类

class Box():
    def __init__(self, length, width, height):     # 传递类参数的保留函数__init__
        self.length = length                       # 长数据变量
        self.width = width                         # 宽数据变量
        self.height = height                       # 高数据变量
    def volume(self):                               # 求立方体的体积函数volume
       return self.length * self.width * self.height
       
my_box = Box(10, 10, 10)                       # 调用Box类,通过Box类赋值建立对应的一个实例my_box 
print('立方体体积是%d' % (my_box.volume()))     # 通过实例调用volume()方法求体积并打印
# 立方体体积是1000

2.引出类相关的知识

1)class关键字
所有的类定义必须用class开始,就像所有的自定义函数必须用def开始一样。
2)类名
Python语言建议约定类名首字母需要大写。
3)类开始第一行格式

class 类名():

4)类文档说明
用三个单引号(’’’)成对引用说明内容。
5)类函数
类函数在类或实例里又叫做方法(Method)
6)保留函数__init__和 self关键字
保留函数就是不能用其他函数代替该函数的作用,包括函数名的写法,必须严格按照__init__格式输入。
作用:
(1)所有类需要实例化,必须先在类里声明__init__函数,不然类的实例无法使用。
使用格式:def __init__(self):
self关键字,在实例使用时,用于传输实例对象(其实传递的时实例对象在内存中的一个地址)。所有实例可以调用的属性,必须在__init__定义并初始化,然后通过self传递。
self参数时隐形传递的,在实例化赋值过程中自动进行。
类里的函数要变成实例可以调用的方法也必须提供self参数。

def volume(self):                  # 去掉self不能被实例调用

(2)__init__初始化实例相关参数作用。类在实例化的同时,会自动调用__init__函数,通过它初始化属性值。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rocjian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值