1 类和对象
- 类
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
-
创建
语法类型:
class ClassName:
(statement-1)
…
(statement-N)class 具体定义如下:
class ClassName(ParentClass):
“”“class docstring”""
def method(self):
return
[1] class 关键词在最前面
[2] ClassName 通常采用 CamelCase 记法
[3] 括号中的 ParentClass 用来表示继承关系
[4] 冒号不能缺少
[5] “”"""" 中的内容表示 docstring,可以省略
[6] 方法定义与函数定义十分类似,不过多了一个 self 参数表示这个对象本身
[7] class 中的方法要进行缩进 -
方法
在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例。
-
继承
Python 同样支持类的继承,如果一种语言不支持继承,类就没有什么意义。派生类的定义如下所示:
class DerivedClassName(BaseClassName1):
(statement-1)
…
(statement-N)
需要注意圆括号中基类的顺序,若是基类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找基类中是否包含方法。
-
多继承
Python同样有限的支持多继承形式。多继承的类定义形如下例:
class DerivedClassName(Base1, Base2, Base3):
(statement-1)
…
(statement-N)
需要注意圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找父类中是否包含方法。
- 对象
对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
在 Python 中,几乎所有的东西都是对象。
整数是对象:
b 和 a 是同一个对象:
函数:
type 函数本身也是对象:
只有一些保留的关键词不是对象:
2 正则表达式
正则表达式模式:
模式字符串使用特殊的语法来表示一个正则表达式:
字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。
多数字母和数字前加一个反斜杠时会拥有不同的含义。
标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。
反斜杠本身需要使用反斜杠转义。
由于正则表达式通常都包含反斜杠,所以你最好使用原始字符串来表示它们。模式元素(如 r’\t’,等价于 \t )匹配相应的特殊字符。
下表列出了正则表达式模式语法中的特殊元素。如果你使用模式的同时提供了可选的标志参数,某些模式元素的含义会改变。
正则表达式实例:
3 re模块
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。
re 模块使 Python 语言拥有全部的正则表达式功能。
compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。
re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。
功能:用来匹配字符串(动态、模糊的匹配),爬虫用的多。
参考链接:
https://blog.csdn.net/qq_38038143/article/details/80671420 (re匹配简介)
https://www.cnblogs.com/hello-wei/p/10181055.html (re函数简介)
- 常用方法:
1.mathch():从头匹配
2.search():从整个文本搜索
3.findall():找到所有符合的
4.split():分割
5.sub():替换
6.group():结果转化为内容
7.groupdict():结果转化为字典 - 标示符号:
每个表达式和函数的详细使用情况:
- 正则表达式对象:
1.re.RegexObject
2.re.compile() 返回 RegexObject 对象。
3.re.MatchObject
4.group() 返回被 RE 匹配的字符串。
5.start() 返回匹配开始的位置
6.end() 返回匹配结束的位置
7.span() 返回一个元组包含匹配 (开始,结束) 的位置
4 http请求
Python 标准库中的 urllib2 模块提供了你所需要的大多数 HTTP 功能,但是它的 API 不是特别方便使用。
requests 模块号称 HTTP for Human,它可以这样使用:
import requests
传入 URL 参数
读取响应内容
响应状态码
响应头
请求方法
参考链接:
https://segmentfault.com/a/1190000010901374 (四种请求方法)
https://www.cnblogs.com/miqi1992/p/7828886.html (请求和答复详解)
https://2.python-requests.org//zh_CN/latest/user/quickstart.html (requests的使用)