2.3 requests发送http请求及代码的简化手段
httper.py
#封装HTTP请求类
#发送http请求的两种方式
#urllib
#requests
#from urllib import request
import requests
class HTTP: #class HTTP(object):有无都无所谓
#def get(self,url,return_json=True):
#或者使用静态方法,与上面一模一样
@staticmethod
def get(url,return_json=True):
r = requests.get(url)
#restful
#json
# if r.status_code == 200:
# if return_json():
# return r.json()
# else:
# return r.text
# else:
# if return_json:
# return {}
# else:
# return ''
#将以上代码优化
if r.status_code != 200:
return {} if return_json else '' #特例情况
return r.json() if return_json else r.text #正常返回
#优化; if else ,for 提取成另一个函数
知识点:
简化if-else语句的几种方式 1.使用三元表达式 ;2.if+return;3.将if-else里的代码提取成函数
if+return的理解:把最后一句return前的if+return 全都理解为正常流程之外的一种特例情况的处理;多次if-return,提前结束一些逻辑分支,可以提高代码思维的清晰性
requests的一些说明:1.get()发送get请求;2.返回结果r.status_code 获取返回状态吗;3.r.json()将返回结果序列化成json;4.r.text 将返回结果不做处理直接返回
Last updated
Was this helpful?