这个知识点应用的范围比较小,仅当题目中出现utils
的merge
或Pydash
模块中的set
和set_with
函数才会用上。今天来学习其实是因为DASCTF的第一题ezflask里面出现了。
Python类与继承
首先经典回顾一下python的类与继承:
- 在Python中,定义类是通过
class
关键字,class
后面紧接着是类名,紧接着是(object)
,表示该类是从哪个类继承下来的,所有类的本源都是object类 - 可以自由地给一个实例变量绑定属性,像js
- 由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的
__init__
方法,在创建实例的时候,就把类内置的属性绑上 - 注意到
__init__
方法的第一个参数永远是self
,表示创建的实例本身,因此,在__init__
方法内部,就可以把各种属性绑定到self
,因为self
就指向创建的实例本身。 - 当我们定义了一个类属性后,这个属性虽然归类所有,但类的所有实例都可以访问到
- 判断一个变量是否是某个类型可以用
isinstance()
判断。