Python面向对象和json

本文介绍了Python的面向对象编程,包括类属性、对象属性、self的使用和方法选择,详细阐述了继承的概念和多继承的应用。同时,文章探讨了JSON数据格式,包括其特点和Python中json模块用于数据转换的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向对象和json

属性

定义类就是用代码描述清楚这个类拥有哪些相同功能和哪些相同属性的对象的集合,方法(函数)用来描述相同功能,属性(变量)用来描述相同属性。

属性分为两种:类属性、对象属性

1.类属性

怎么定义:直接定义在类中的变量就是类属性

怎么使用:通过’类.'的方式去使用

Student.a = 200

什么时候用:如果属性值不会因为对象不同而不一样的时候

2.对象属性

怎么定义:以’self.属性名 = 值’的方式定义在–init–方法中

怎么使用:通过’对象.'的方式使用

stu = Student()
print(stu.name,stu.age)

什么时候用:如果属性值会因为对象不同而不一样的的时候

练习:定义一个园类,用两个属性分别标识半径和圆周率

class Circle:
    pi = 3.14
    def __init__(self):
        self.radius = 2

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

3)使用有默认值的参数赋值

class Person:
    def __init__(self,name,age=18,gender = '男'):
        self.name = name
        self.age = age
        self.gender = gender

    def __repr__(self):
        #return f'name:{self.name},age:{self.age},gender:{self.gender}'
        return str(self.__dict__)

p1 = Person('小明')
p2 = Person('张三',17)
p3 = Person('小花',19,'女')
print(p1,p2,p3)

3.self的使用

self是谁调用就指向谁,所有在对象中可以直接将self当成对象来使用。(这个类的对象能做的事情self都可以做)

class Rectangular:
    def __init__(self,length,width):
        self.length = length
        self.width = width

    def get_area(self):
        return self.length * self.width

    def get_perimeter(self):
        return (self.width+self.length)*2
r1 = Rectangular(2,3)
r2 = Rectangular(2,3)
print(r1.get_area())
print(r2.get_perimeter())

4.方法的选择

对象方法:如果实现函数的功能需要对象(需要对象属性)就使用对象方法
类方法:实现函数的功能不需要对象(或者对象属性)的前提下,需要类就使用类方法
静态方法:既不需要类,也不需要对象

class Math:
    @staticmethod
    def sum(a,b):
        return a+b

class Chemistry:
    @staticmethod
    def sum():
        print('a')
Math.sum(1,2)
Chemistry.sum()

继承

1.继承

继承就是让子类直接拥有父类所有的属性和方法。

子类:继承者

父类(超类):被继承者

语法:

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

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

2.在子类中添加

1)添加类属性和方法

直接在子类中定义新的类属性和新的方法

2)添加对象属性

3.多继承

可以继承所有父类的所有方法和属性,只能继承第一个父类的对象属性

class A:
    def __del__(self):
        self.a = 5
class B:
    def __init__(self):
        self.b = 2
class C(A,B):
    # def __init__(self):
    #     super().__init__()
    #     self.c = 6
    pass
x = C()
print(x.b)

json数据

1.json数据

josn是一种通用的数据格式,主要用于不同语言之间进行有效的数据沟通。

2.json数据格式

要求:1)一个json有且只有一个数据;2)唯一的这个数据必须是json支持的类型的数据

json支持的类型:

数字:数字直接写,并且支持科学计数法,例如:67、1.23、-23、+23.9、3e5

字符串:只能使用双引号,支持转义字符,例如:“abc”、“abc\n123”、“\u4e00”

布尔值:只有true和false两个值

空值:null

数组:相当于python的列表,[元素1,元素2,元素3,…]

字典:相当于python的字典,但是键只能是字符串

3.python数据和josn数据的相互转换

import json

json模式提供了python中所有和json操作相关的数据

1)json 转python

json pyhton

数字 int、float

字符串 str(双引号变单引号)

布尔值 true->True,false->False

空值 null->None

数组 list

字典 dict

json.loads(json格式字符串):将json格式字符串对应的json数据转换成相应的python数据

注:json格式字符串:指的是字符串内容是json的字符串

import json
json.loads('"abc"')   #'abc'
json.loads('100')
json.loads('{"a":10,"10":20}')

1)python转json

int、float 数字

str 字符串(单引号变双引号)

bool 布尔

列表,元组 数组

dict 字典,键会编程双引号字符串

None null

json.dumps(python数据) - 将指定的python数据转换成json格式字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值