Day17 json和面向对象
一.ison数据
1. json数据格式的作用
1)json的作用:json和xml使两种通用的数据格式,几乎所有的高级的编程语言都支持 json和xml数据的格式的存在,是为了让不同编程语言的程序可以进行 有效的沟通
2.json数据格式
json数据格式的要求:
1)一个json有且只有一个数据 2)唯一的数据必须是json支持的类型的数据
json支持的数据类型:
数字 - 表示的时候直接写,并且支持科学计数法 字符串 - 只能支持双引号,支持转义字符 布尔 - 只有true 和fause(小写) 数组 - 相当于python的列表 字典 - 相当于python的字典,键只能是字符串 空值 - null
3.json数据和python数据的相互转换
python中的json模块可以提供和json相关的操作 1)json转python
json - python
数字 - int, float
字符串 - str(默认会将双引号变成单引号)
布尔 - true->True, false->False
数组 - list
字典 - dict
空值 - null->None
方法:json.loads(json格式的字符串) - 将json数据转换为对应的python数据(字符串内容是json数据的字符串)
2)python转json
python - json
int,float - 数字
str - 字符串,(默认会将单引号变成双引号)
布尔 - True->true, False->false
list,tuple - 数组
dict - 字典
空值 - None ->null
json.dumps(python数据) - 将Python数据转换为json格式的字符串
二.编程思想
1. 面向过程编程(穷人思想) - 语法,逻辑
2.函数式编程(小资思想) - 函数
3.面向对象编程(富豪思想) - 类和对象
三.类和对象
1.认识类和对象
什么是类:类就是拥有相同功能和相同属性的对象的集合 什么是对象:类的实例
2.创建类 - 用代码来描述清楚这个类是拥有哪些相同功能,以及哪些形同相性的集合
功能 - 函数 属性 (数据) - 变量
语法:
class 类名:
类的说明文档和类的内容
类的内容
说明:
class - 关键字;固定写法
类名 - 由程序员自己命名,必须满足两个要求:标识符和不是关键字
三个规范:a.见名知意 b.采用驼峰式命名,第一个字母必须大写 c.不使用 系统的函数名,类名和模块名
类的说明文档 - 本质就是多行注释
类的内容 - 包含属性和方法,其中属性分为对象属性和类属性两种,方法的本质就是函数,分为对象方法,类方法,静态方法
3.创建对象
语法:
类名()
Day-18类和对象
一.对象方法
1.方法指的就是定义在类中的函数
1)怎么定义:直接定义(不需要添加任何装饰器)在类中的函数就是对象方法 2)怎么调用:通过‘对象.xx()'的形式来调用 3)特点:每个对象方法都有一个默认参数self,在通过对象调用对象方法时self不需要传参,系统会自动把当前对象传参给self,self谁调用就指向谁
2.初始化方法 - init
__init__是python类中一个特殊的对象方法,也是魔法方法
魔法方法:类中方法名以__开头并且__结尾都是魔法方法,是系统自带的 魔法方法不需要程序员主动调用,系统会在特定的情况下自动调用。
1)__init__会在创建对象的时候被自动调用 2)通过类创建对象的时候需不需要参数和需要几个参数由类中的__init__决定
二.属性
1.类中的属性
定义类就是用代码来描述类是拥有哪些相同特征的事物的总和 如果特征是通过数据来体现的,那么这种特征就用属性来表示
1)类属性 a.怎么定义:直接将变量定义在类中,这个变量就是类属性 b.怎么使用:通过’类.xx’的方式来使用 c.什么时候用:属性值不会因为对象不同而不一样的时候就使用类属性
2)对象属性 a.怎么定义:以’self.xx=值’的形式定义在__init__方法中 b.怎么使用:通过’对象.xx’的方式来使用 c.什么时候用:属性值会因为对象不同而不一样的时候就使用对象属性
2.对象属性默认值
1)方式1:使用固定的值(主要用于这个属性值在绝大部分情况下都是一个值,极少情况会变化的时候用) 2)方式2:在__init__中提供给给这个属性赋值的形参,形参没有默认值(属性值一般都不一样) 3)方式3:在__init__中提供给给这个属性赋值的形参,形参有默认值
三.方法
1.对象方法
a.怎么定义:直接定义 b.怎么调用:对象.xx() c.特点:参数self,不需要传参,指向当前对象 d.什么时候用:如果实现函数的功能需要用到对象属性就使用对象方法
2.类方法
a.怎么定义:定义函数前加@classmethod装饰器 b.怎么调用:类.xx() c.特点:自带参数cls,调用的时候不用传参,系统会自动将当前类传参给cls d.什么时候用:在不需要对象属性的情况下需要类就使用类方法
3.静态方法
a.怎么定义:定义函数前加@staticmethod装饰器 b.怎么调用:类.xx() c.特点:没有默认参数 d.什么时候用:不需要类也不需要对象,就使用静态方法
四.属性增删改查
1.查 - 获取属性值
对象.对象属性 - 获取指定属性对应的值 getatter(对象,属性名) - 动态获取指定属性对应的值 getatter(对象,属性名,默认值) - 动态获取指定属性对应的值,如果属性不存在返回默认值
2.增,改
对象.属性=值 - 如果属性存在就是修改指定属性的值,如果不存在就添加属性 setatter(对象,属性名,值) - 如果属性存在就是修改指定属性的值,如果不存在就添加属性
3.删除
del 对象.属性 delatter(对象,属性名)
4.slots - 可以约束当前类的对象最多能拥有哪些对象属性
|