Python 中请求 get() 方法前缀的字典

Dictionary prefixed to requests get() method in Python

我目前正在查看一些财务代码 API 并且有一个示例函数似乎可以处理指定类型的请求(我对请求很陌生,所以仍在学习这个) .
我不明白函数 return 中的语法。我从来没有见过像这样的方法前面有字典,这里发生了什么?谢谢指教。

import requests 

def dispatch_request(http_method):
    session = requests.Session()
    session.headers.update({
        'Content-Type': 'application/json;charset=utf-8',
        'X-MBX-APIKEY': KEY
    })
    return {
        'GET': session.get,
        'DELETE': session.delete,
        'PUT': session.put,
        'POST': session.post,
    }.get(http_method, 'GET')

如果有人感兴趣,可以在此处查看完整示例:https://github.com/binance-exchange/binance-signature-examples/blob/master/python/spot.py

他们基本上是将字典用作“switch 表达式”;如果您熟悉其他语言(如 C 和 Java 中的 switches(尽管 C 中的 switches 是语句,并且不求值)。

如果 http_method'POST' 例如:

{   'GET': session.get,
    'DELETE': session.delete,
    'PUT': session.put,
    'POST': session.post,
}.get('POST')

get 的调用将评估为 session.post,然后将被 returned。这只是一种替换一些 if 来决定 return.

的方法