Python concepts

classmethod & staticmethod

https://www.cnblogs.com/baxianhua/p/10845620.html

Python不支持多个的參数重载构造函数,用classmethod修饰符的方式,定义出来的函数就能够在类对象实例化之前调用这些函数,就相当于多个构造函数,解决多个构造函数的代码写在类外面的问题

类最基本的作用是实例化出一个对象,但是有的时候再实例化之前,就需要先和类做一定的交互(init方法里需要调用类里的方法,或init之前需要调用类方法),这种交互可能会影响实际实例化的过程,所以必须放在调用构造函数之前。大概也可能是因为这个原因出现了classmethod

对于一个普通的类,我们要使用其中的函数的话,需要对类进行实例化,而一个类中,某个函数前面加上了staticmethod或者classmethod的话,那么这个函数就可以不通过实例化直接调用,可以通过类名进行调用的

类方法的第一个参数(cls)指代的就是类本身。类方法会用这个类来创建并返回最终的实例。使用类方法的另一个好处就是在继承的时候,保证了子类使用可选构造函数构造出来的类是子类的实例而不是父类的实例

staticmethod就是全局可调的静态方法

yield

https://blog.csdn.net/mieleizhi0522/article/details/82142856
yield = return & generator

json (transform from string to json)

import json module first

  1. JSON string -> JSON: json.loads()
    1
    rawData = json.loads(soup.get_text())["data"]
  2. Python object -> JSON: json.dumps()
    1
    2
    3
    4
    5
    6
    dict = {
    "name": "Anne",
    "age": 18
    }
    data = json.dumps(dict)
    print(data)