Python类的封装以及类方法静态方法对比

Python类的封装以及类方法静态方法对比

API 的使用

从心知的API Demo 中找到使用 requests 请求API的函数

1
2
3
4
5
6
7
result = requests.get(API, params={
'key': KEY,
'location': location,
'language': LANGUAGE,
'unit': UNIT
}, timeout=7)
return result.json()

从回调函数中获得 json 数据,保存为字典

对比 @classmethod VS @staticmethod

  1. 当一个函数逻辑上属于一个类又不依赖与类的属性的时候,可以使用 @staticmethod
  2. 使用 @staticmethod 可以避免每次使用的时都会创建一个对象的开销。
  3. @staticmethod 可以使用类和类的实例调用。但是不依赖于类和类的实例的状态。
  4. classmethod 是类对象与函数的结合。
  5. 可以使用类和类的实例调用,但是都是将类作为隐含参数传递过去。
  6. 使用类来调用 classmethod 可以避免将类实例化的开销。

参考:**PYTHON中STATICMETHOD和CLASSMETHOD的差异**

Module

单独创建一个py文件放置这个类,如果在其他地方需要用,直接拷过去就可以了。那么我创建utility文件夹存放这个py文件,通过 from utility.const_value import * 引入即可

还可以创建一个 const_value.py 存放常量,例如 API key,LOCATION,API URL,UNIT等,这样就更加具有封装性