多重继承
1.一个类继承多个类,而多个父类又有公共的父类,(菱形继承/钻石继承)
2.如果一个类有多个父类,那么在搜索属性和方法时,搜索的依据是C3算法。
3.这是Python3的改进,在此之前的算法是深度优先搜索算法 DFS
注意:避免使用多重继承,如果必须要用,尽量只继承亲爸的,后爸的不继承属性,且方法写为抽象类方法。 学会辨别子类继承的是哪个父类。
from abc import ABCMeta, abctractmethod class Father(object): def __init__(self, name): self._name = name def drink(self): print(self._name + '正在喝酒') class Monk(object, metaclass=ABCMeta): @abstractmethod def eat_vegetable(self): pass class Art(object, metaclass=ABCMeta): @abstractmethod def play_piano(self): pass class Son(Father, Monk, Art): def __init__(name, nicename, art_name): Father.__init__(self, name) self._nicename = nickname self._art_name = art_name def eat_vegetable(self): print(self._nickname + '正在吃素') def play_piano(self): print(self._art_name + '正在弹琴') def main(): son = Son('曹宇', '曹大师', '曹大家') son.drink() son.eat_vegetable() son.play_piano() if __name__ == '__main__': main()
正则表达式
工具 -- 定义字符串的匹配模式
\w 一个字母或下划线或数字
\d 一个数字
. 除换行符以外的任意字符
* 表示任意长度的字符
+ 至少一个字符
? 一个或0个字符
\s 任意长度的空白符
{n} 表示n个字符
{n,m} 表示n到m个字符
[0-9a-zA-Z] 表示一个数字或字母或下划线
A | B 表示A 或 B
^ 表示以什么开头
$ 表示以什么结尾
(?<= ) 前瞻
(?= ) 后顾
分组问题
import re def main(): username = 'jackfrued' if re.match(r'^\w{6,20}$', username): # 如果匹配成功,返回True, 失败,返回None # search 也行 print('匹配成功') else: print('无效的用户名') m = re.match(r'^\w{6,20}$', username) print(m.span()) print(m.group()) if __name__ == '__main__': main()
re 的方法
compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
re.search 扫描整个字符串并返回第一个成功的匹配。
Python 的re模块提供了re.sub用于替换字符串中的匹配项。
re.findall在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
re.finditer和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
split 方法按照能够匹配的子串将字符串分割后返回列表
import re # 正则表达式之sub替换 def foo(mo): val = int(mo.group()) return str(val ** 2) def main(): sentence = '重要的事情说1次,我的电话5,她3,他4的号码' m = re.sub(r'\d+', foo, sentence) print(m) if __name__ == '__main__': main()
git -- Linus 合并模式,只是在提交时需要使用中央处理器
1.git --version 检查是否安装成功
2.mkdir 创建文件夹 open notepad 创建文本
3.git init 初始化方法 repository - 仓库
4. git add . 加载文件,‘.’ 表示所有文件,可以换成具体的文件名
5.git remove 删除添加的文件
6. git commit -m '说明' 将文件保存在本地
7.git remote add origin + 网址 连接中央处理器,云端
8. git push -u origin master 推送,上传
9. git log -- 查看历史版本 git status -- 查看做了什么操作