类与对象

在提到类与对象之前,就不得不先说到面向对象编程。

面向对象编程是一种编程思想,它并不是一种方法,也不是某一种范式,而是帮助我们更好的统合代码的一种思想。在那之前,我们可能会先了解到面向过程编程,这也是一种编程思想,两者各有优劣。

面向过程编程

  核心是过程二字,过程指的是解决的步骤,即先干啥、在干啥、后干啥

  基于该思想写程序就是在设计一条条的流水线

  优点:复杂的问题流程化、进而简单化

  缺点:牵一发而动全身,扩展性差

面向对象编程

  核心是“对象”二字,对象指的是盛放相关的数据与功能的容器

  基于该思想编写程序就是在创造一个个的容器来吧相关的东西联系在一起

  优点:扩展性强

  缺点:加大了变成的复杂度

我们并不是说些一个软件、程序就单用某一种思想,这是不对的。像我们常使用的自定义函数,其中最为典型,大家都写吐的登录注册, 使用的思想就是面向过程思想,先做某一步,然后再做某一步。它能帮助我们很便捷的就达到我们所想要的结果或者完成我们的是目的。

而面向对象编程就如我们提到的对象二字,其中比较常用的就是与类结合。

虽然在python里面,一切皆为对象,底层算法已经给我们整理好了,但是不了解其中的用法,还会是云里雾里。c

class Student:

  school = 'school'

  def __init__(self,name,age):

    self.name = name

    self.age = age

  def user_info(self):

    print(f'用户{self.name}年龄{self.age}')

这就算是定义了一个类了,__init__是固定用法,当我们调用了这个Student这个类的时候,就相当于调用了__init__这个方法。

stu1 = Student('gugu',18)

同时,类在调用的时候会发生三件事

  1、会执行类体的代码

  2、会产生一个类的名称空间,用来将类体代码运行过程中产生的名字都丢进去

  3、将名称空间的内存地址绑定给类名

调用类也会发生三件事

  1、会创建空对象(调用new方法来创建的空对象)

  2、会自动触发类中init函数的运行,init(空对象,‘gugu’,18),完成对象的初始化操作,注意:init不能有返回值

  3、返回该对象,赋值给stu1

类中有两种属性

1、数据属性

  就是储存在类里面的数据school = 'school'

2、函数属性

  相当于我们调用函数方法,传值获得返回值等等

但是类中的属性其实是为对象准备

1、类的属性是直接共享给所有对象用的

2、类的函数属性是绑定给对象用的

除此之外,python3统一了类与类型的概念

当我们在解释器中调用type方法去查看各个数据类型的数据时,你会发现屏幕上输出的内容是<class '类型'>,而我们用同样的方法去查看我们自定义的类,也会有相似的结果。

posted @ 2021-04-12 20:18  ╰╮  阅读(84)  评论(0)    收藏  举报