面向对象编程

本文详细介绍了Python的面向对象编程,包括编程思维转变、类与对象的认识、类的创建与对象的实例化、方法(对象方法、类方法、静态方法)、常用魔法方法、属性的分类与使用、方法选择策略、类的继承以及json数据的处理。通过实例讲解了如何在Python中进行面向对象编程,并提供了相关练习题。
摘要由CSDN通过智能技术生成

面向对象编程

1,编程思维
  • 面向过程编程

    • 工具:思路加语法
  • 函数式编程

    • 我要找到洗衣机,或者买个洗衣机
    • 工具:函数
  • 面向对象编程

    • 到问题马上想到有没有一个对象具备这个功能,如果有直接用,没有就创建这个对象(创建对象还要看有没有类,没有类还要创建类)
    • 工具:类和对象
2,认识类和对象
  • 类:类是具有相同功能和属性的集合 ---- 抽象概念

  • 对象:对象就是类的实例 ---- 类的具体表现

3,创建类

创建类就是用代码来描述清楚这个是有哪些相同功能(函数)和哪些相同属性(保存数据的变量)的对象的集合

语法:

class 类名:
    说明文档
    类的内容(方法和属性)
  • class ---- 关键字

  • 类名 ---- 由程序员自己命名

    • 要求不能是关键字,驼峰式命名,首字母大写,不能是系统已经使用的名字
  • 类的内容 ---- 由方法和属性组成,方法又分为对象方法、类方法和静态方法;属性分为类属性和对象属性

(* ̄(oo) ̄):方法就是定义在类中的函数,属性就是定义在类中的变量

4,创建对象

对象又叫实例

语法:

类名()

class AAA:
    pass
p1 = AAA()
5,方法
5.1对象方法
  • 怎么定义:将函数 直接定义在类中

  • 怎么调用:通过 “对象.” 的方式调用

  • 特点:自带参数self,在通过对象调用对象方法的时候,参数 self不需要传参,系统会自动将当前对象传给self。

5.2类方法
  • 怎么定义 ---- 在定义函数前加装饰器(@classmethod)

  • 怎么调用 ---- 通过 “类.” 的方式调用

  • 特点 ---- 自带参数cls,在调用的时候cls不用传参,系统会自动将当前对象传参给cls

5.3静态方法
  • 怎么定义 ---- 在定义函数前加装饰器(@staticmethod)

  • 用方法 ---- 通过 “类.” 的方式调用

  • 特点 ---- 没有特点

6,常用的魔法方法

类中两个下划线开头,两个下划线结尾,并且会在特定情况下会自动调用的就是魔法方法。

1,__init__
在通过类创建对象的时候会被自动调用
创建对象的时候需不需要参数需要几个看这个类的__init__方法除了self外有没有额外的参数,有几个

2,__repr__
在打印类的对象的时候会被自动调用类中的__repr__方法,并且获取返回值为打印结果(结果必须是字符串)
7,属性

①属性(变量)用来描述相同属性

②属性分为:类属性(字段)和对象属性

  • 类属性

    • 定义 - 直接定义在类中的变量就是类属性
    • 使用 - 通过 “类. ” 的方式使用
    • 使用场景 - 如果属性值不会因为对象不同而不一样就使用
  • 对象属性

    • 定义 - 以 “self.属性名 = 值” 的方式定义
    • 使用 - 通过 “对象. ” 的方式使用
    • 使用场景 - 如果属性值“会”因为对象不同而不一样就使用
    • 对象属性默认值
      • 赋一个固定的值:每次创建对象不能重新赋值,只能在创建好对象以后修改属性值
      • 使用没有默认值的参数赋值
      • 使用有默认值的参数赋值
  • self的使用

    • 在对象方法中self是谁调用就指向谁,所以在对象中可以直接将self当做对象使用(类中对象能做的事self都能做)
8,方法的选择
  • 对象方法:如果实现函数的功能需要对象(需要对象属性)就使用对象方法。

  • 类方法:实现函数功能的时候不需要对象或者对象属性的前提下,就使用类方法

  • 静态方法:既不需要类也不需要对象。

9,类的继承
  • 继承就是让子类直接拥有父类的属性和方法

    • 子类:继承者
    • 父类:被继承者
  • 语法:

class 类名(父类列表):
    类的说明文档
    类的内容

(* ̄(oo) ̄):如果定义类的时候没有写父类,那么这个类默认继承Python的基类 - object

  • 在子类中添加内容

    • 添加类属性和方法
    • 添加对象属性
  • 多继承

    • 多继承可以继承父类所有方法和类属性,但是只能继承第一个父类的对象属性(了解)
10,json数据
10.1json数据
  • json是一种数据格式,用于不同语言之间进行有效的数据沟通。

  • 一个json文件只能有一个数据

10.2json数据格式
  • 要求:

    • 一个json有且只有一个数据
    • 唯一的数据必须是json支持的类型数据
  • json支持的数据类型

    • 数字 ---- 数字直接写,并且支持科学计数法(任何数)
    • 字符串 ---- 只能使用双引号,支持转义字符(“json”)
    • 布尔值 ---- 只有true和false
    • 空值 ---- null
    • 数组 ---- 相当于Python的列表[元素1, 元素2, …], 元素的类型必须是json支持的数据类型
    • 字典 ---- 相当于Python的字典,但是json中的键只能是字符串。
10.3Python数据和json数据的相互转换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值