3.python对象封装、正则表达式

37 阅读2分钟

封装私有变量

__代表私有变量和方法,外界不支持使用,只有内部可以使用 image.png

继承

单继承 image.png 多继承,有共同的属性或方法,写在最前面的优先级高。 image.png 复写

image.png

父类名.属性或方法,方法里面记得写self,super().属性或方法image.png

多态

image.png 父类的抽象类(定义方法,但是不写具体的实现,直接写pass) image.png

re.match函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

函数语法

re.match(pattern, string, flags=0)
import re 
print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配 span()返回(0,3)开始跟结束的坐标
print(re.match('com', 'www.runoob.com')) # 不在起始位置匹配,返回none

re.search方法

re.search 扫描整个字符串并返回第一个成功的匹配。

函数语法:

re.search(pattern, string, flags=0)
import re 
print(re.search('www', 'www.runoob.com').span()) # 在起始位置匹配 
print(re.search('com', 'www.runoob.com').span()) # 不在起始位置匹配

区别:

re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回 None,而 re.search 匹配整个字符串,直到找到一个匹配

替换

参数:

  • pattern : 正则中的模式字符串。
  • repl : 替换的字符串,也可为一个函数。
  • string : 要被查找替换的原始字符串。
  • count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
  • flags : 编译时用的匹配模式,数字形式。
import re 
phone = "2004-959-559 # 这是一个电话号码" 
# 删除注释 
num = re.sub(r'#.*$', "", phone) 
print ("电话号码 : ", num) # 电话号码 :  2004-959-559 
# 移除非数字的内容 
num = re.sub(r'\D', "", phone) 
print ("电话号码 : ", num) # 电话号码 :  2004959559