python的第三次学习

面向对象
类的基本写法
在这里插入图片描述

其他模块调用上面定义的类的写法
在这里插入图片描述

构造函数
①当实例化对象时候,会先自动调用构造函数,目的是初始化对象;
②python类里面一般默认定义的方法和变量都是公开的,如何变成私有的呢,在定义变量或者方法时候,在变量名或者方法名前面加上两个下划线,python就认为这是私有的变量,私有的变量或者方法,只能在类内部访问,不能再类外部访问。但是我们定义一个私有的变量后,仍然在类外面用对象名.私有变量名访问,python不会报错为什么?因为python是动态语言,这个方式并不是访问他的私有变量,而是动态的添加一个同名的私有变量,原先真正的私有变量会变成类名__私有变量名的形式
在这里插入图片描述

class Stu():
    #sum1是类变量
    sum1 = 0
    name = ''
    age = 0
    #下面是定义的私有变量,只能在类里面访问
    __score = 0

    def __init__(self,name,age):

        #类里面的实例方法,参数里面必须有self,代表调用这个方法的实例对象
        self.name = name
        self.age = age

        
        #下面是通过self来访问(类变量),self.__class__是为了找到该对象的生成类
        print(self.__class__.sum1)

    #下面是定义的私有方法,只能在类里面访问


    #下面是定义类方法的规则@classmethod 来定义类方法 cls指的是调用本类方法的类
    #类方法,一般是用来操作类变量的
        
    @classmethod
    def yunsum1(cls):
        
        cls.sum1 += 1

    #这里是静态方法的定义规则
    @staticmethod
    def jingtai(x,y):
        print('静态方法和类和实例没有多少关系,一般不怎么使用,也没有特别参数要求传入')


st1 = Stu('yang',18)
print(st1.name)

#下面是通过类名访问类变量
print(Stu.sum1)

面向对象三大特性
封装 继承 多态
1,继承(避免定义重复的方法和变量)
①子类可以继承父类的 类变量
②子类可以继承父类的 构造函数
③子类可以继承父类的 实例变量
④子类也可以继承父类的 实例方法
⑤python是多继承,但是我们推荐使用单继承
⑥对象调用实例方法,不用给self参数,【 而用类名调用实例方法的话,参数里面必须给self参数,否则就会报错
(或者参数里面给上一个对象才可以不报错);这个绝对不要用 】
⑦如果子类的方法,和父类的方法出现相同名字的方法,子类会优先调用子类的方法
注意:子类继承父类的规则
在这里插入图片描述

正则表达式
就是用来对字符串 文本进行筛选的
①,正则是匹配的单个字符
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
. 点是匹配除了换行符\n 以外的所有字符

上面的都是匹配一个字符或者字母,如果匹配一个单词呢?这里就需要用到数量词了
在这里插入图片描述
在这里插入图片描述
数量词,一般都是{3,6}或者{5}这样的写法,但是还有一些特殊的数量词字符
在这里插入图片描述

  • 0或者多次出现
  • 至少一次出现
    ? 0或者1次
    在这里插入图片描述
    在这里插入图片描述

前面是单个字符匹配和单词匹配;但是如何匹配完整的一个字符串呢?使用边界匹配
^ 从字符串的开头开始匹配
$ 从字符串的结尾开始匹配

前面学的,用数量词,只能让单个字符重复几次,比如下面
在这里插入图片描述
如上图,这样只能是匹配最后一个n重复三次
在这里插入图片描述
通过小括号括起来,可以让整个单词重复3次

中括号和小括号之间的逻辑关系
在这里插入图片描述

python的re.findall有第三个参数,是什么作用?
在这里插入图片描述

正则表达式模块re里面其他方法函数的用法 findall()是查找
①,替换
在这里插入图片描述

在这里插入图片描述
如上图,为什么要把函数作为参数传入进去呢,因为我们有时要根据匹配的不同字符,做出不同的处理,这样就能通过这个函数进行处理判断,然后把结果return回去,在替换掉字符串中匹配的字符

在这里插入图片描述
作为参数的函数,一般定义为convert(value)

JSON是什么?
json字符串中,属性名和属性值都要加 双引号(必须是双引号),但是有一点,如果这个属性值是 数值类型,比如‘{ ‘age’ : 18 }’ 这个18是数值类型,如果是布尔值也不用加双引号,可以不用加引号

在这里插入图片描述

如果json是一个数组格式怎么办?
在这里插入图片描述

那如何,把python的一个数组转为json字符串呢?
python的序列列表,转为json对象的过程 叫序列化
json字符串转为python里面的序列或者字典的过程 叫做反序列化
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值