2020-07-28

面向对象

对象(object)
python就是一个面向对象的编程语言
对象就是内存中专门用来存储数据的一块区域
对象的结构

  • 1.id(标识)
  • 2.type(类型)
  • 3.value(值)

面向过程

就是将程序的逻辑分解成一个一个的步骤,例如 冰箱.开门,冰箱.储存,冰箱.关门
我们通过完成一个一个的步骤来完成一个程序
这种方式写代码只适用于一个功能
符合人类的思维逻辑,编写起来比较简单

类的简介(Class)

类,简单理解相当于一张图纸,在程序中我们需要根据类来创建对象
如果多个对象是通过一个类创建的,我们就称这些对象是一类对象
int() float() bool() str() ........
a = int(10) 等价于 a = 10 创建了一个int类的实例
自己定义类需要大写字母开头


image.png

image.png

image.png

类的说明

  • 类也是一个对象
  • 类就是一个用来创建对象的对象
  • 类就是type类型的对象,定义类实际上就是定义了一个type类的对象
  • 现在通过MyClass创建的对象都是一个空对象
  • 可以向对象中添加变量,对象中的变量称为属性

语法 对象.属性名 = 属性值

类的定义
对现实生活中事物的抽象
实际上所有的事物都是有两部分组成

  • 1.数据(属性)
  • 2.行为(方法)


    image.png

调用方法 对象.方法名()

  • 在类中有代码块,我们可以定义变量和函数
  • 在类中我们定义的变量,将会成为所有实例对象的公共属性 通过对象.属性名的方式访问
  • 所有实例都可以访问这些变量
  • 在类中也可以定义函数,类中定义的函数,我们称之为方法
  • 这些方法也可以通过该类的实例来访问
  • 函数会成为该类实例的公共方法,所有该类的实例都可以通过 对象.方法名()的方式调用
  • 方法调用和函数调用的区别
    1.如果是函数调用,你有几个形参,我就传递几个实参
    2.如果是方法调用,默认传递一个形参,所有在定义方法的时候至少得有一个形参


    image.png
image.png

类属性和方法

当我们调用一个对象的属性时,解析器会先在当前对象中寻找是否还有该属性,如果有,则直接返回当前的对象的属性值。如果没有,则去当前对象的类对象中去寻找,如果有则返回类对象的属性值。如果没有就报错。

image.png

  • 类对象和实例对象都可以保存属性/方法
  • 如果这个属性/方法是所有实例共享的,则应该将其保存到类对象当中
  • 如果这个属性/方法是某个实例独有的,则应该保存到实例对象当中
  • 一般情况下属性都保存到实例对象中
  • 方法一般都保存到类对象中

self参数

方法每次被调用的时候,解析器会自动传递一个实参
如果是p1调用,则第一个参数(self)就是p1对象
如果是p2调用,则第一个参数(self)就是p2对象

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。