3.8-面向对象和json

本文介绍了Python中的面向对象编程思想,包括类和对象的概念、定义及方法选择。同时,详细讲解了JSON数据格式,强调其作为数据交换的通用格式,以及如何在Python中进行JSON数据与Python数据类型的相互转换。此外,给出了面向对象编程的实践练习,如创建狗、人、矩形、二维点和圆等类,并定义相应的方法。
摘要由CSDN通过智能技术生成

面向对象和json练习

编程思想
1.面向过程编程(穷人思想)
遇到问题马上想到的是解决问题的步骤和方案
工具:思路+语法
2.函数式编程(小资思想)
遇到问题马上想到的是是否已经存在一个函数具备解决问题的能力,如有直接用,没有就造一个
工具:函数
3.面向对象编程(富豪思想)
遇到问题马上想到的是有没有一个对象具备这个功能,有就直接用,没有就创建这个对象(创建对象还要看有没有类)
工具:类和对象
类和对象
1.认识类和对象
类:类是具有相同功能和相同属性的对象的集合(一类事物的总称) - 抽象的概念
对象:类的实例(类的具体表现)
2.定义类
创建类就是用代码来描述清楚这个类有哪些相同功能(函数)和哪些相同属性(保存数据的变量)的对象的集合

语法:
class 类名:
    类的说明文档
    类的内容(方法,属性)

说明:
class      - 关键字;固定写法
类名        - 由程序员命名
              要求:是标识符;不能是关键字
              规范:见名知义;驼峰命名法,并且首字母大写;不使用系统已经使用的名字
:         - 固定写法
类的说明文档 - 本质就是多行注释
类的内容    - 由方法和属性组成,方法分为对象、类和静态方法三种;属性分为类、对象属性两种
             方法就是定义在类中的函数,属性就是定义在类中的变量

3.创建对象

对象又叫实例
语法:
对象名 = 类名()
对象方法
1.方法 - 定义在类中的函数
1.1.对象方法
1)怎么定义:将函数直接定义在类中
2)怎么调用:用'对象.'的方式调用
3)特点: 自带参数self,在通过对象调用对象方法的时候,参数self不用传参,系统自动将当前对象传给self
        self是谁调用就指向谁

1.2.类方法
1)怎么定义:在定义函数前加装饰器@classmethod   
2)怎么调用:用'类.'的方式调用
3)特点:自带参数cls,在通过类名调用类方法的时候,参数cls不用传参,系统自动将当前类传给cls


1.3.静态方法
1)怎么定义:在定义函数前加装饰器@staticmethod 
2)怎么调用: 用'类.'的方式调用
3)特点:无
常用的魔法方法
1.魔法方法:类中两个下划线开头并以两个下划线结尾,还会在特定情况下自动调用的方法
2.常用魔法方法:
    1)__init__
    在通过类创建对象时,会被自动调用
    创建函数时需不需要参数,需要几个,看这个类的__init__方法除了self以外有没没有额外的参数,有几个
    2) __repr__
    在打印类的对象时自动调用类中__repr__方法,并且获取这个方法的返回值为打印结果(返回值是字符串)
方法的选择
对象方法:如果实现函数的功能需要对象,就使用对象方法
类方法:实现函数的功能不需要对象的前提下,需要类就使用类方法
静态方法:既不需要类,也不需要对象(多用于分类)
属性
1.属性
定义类就是用部分代码描述清楚这个类有哪些相同功能和相同属性的集合,方法(函数)用来描述相同的功能,属性用来描述相同的属性。
属性分为两种:类属性,对象属性
(1)类属性
a.怎么定义:直接定义在类中的属性
b.怎么使用:通过'类.'的方式去使用
c.什么时候使用:如果属性值不会因为对象不同而不一样的时候

(2)对象方法
a.怎么定义:以'self.属性名=值'的方式定义在__init__方法中
b.怎么使用:通过'对象.'的方式去使用
c.什么时候使用:如果属性值会因为对象不同而不一样的时候


#2.对象属性默认值
1)赋一个固定的值:没吃创建对象时不能重新赋值,只能在创建好对象以后修改属性的值
2)使用没有默认值的参数赋值


3.self的使用
在对象方法中,self是谁调用就指向谁,所以在对象中可以直接将self当成对象来使用。(这个类的对象能做的事情self都可以做)
继承
继承就是让子类直接拥有父类的属性和方法
1.直接继承

子类: -  继承者
父类: -  被继承者

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

注意:如果定义类的时候没有写父类,那么默认继承object

2.在子类中继承

1)添加类属性和方法
直接在子类中定义新的类属性和新的方法

2)添加对象属性
super().
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值