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