MyPy:请求对象的类型是什么?
MyPy: what is the type of a requests object?
我正在尝试使用 Python 3 的类型提示语法以及 MyPy 静态类型检查器。我现在正在编写一个接受 requests
响应对象的函数,我想知道如何指示类型。
也就是说,在下面的这段代码中,我可以把???
替换成什么?
import requests
def foo(request: ???) -> str:
return json.loads(request.content)['some_field']
r = requests.get("my_url")
return foo(r)
通过使用 Response
,或者提供完整路径:
def foo(request: requests.models.Response) -> str:
return json.loads(request.content)['some_field']
或者,将其保存为您选择的名称:
Response = requests.models.Response
def foo(request: Response) -> str:
return json.loads(request.content)['some_field']
p.s json.loads
需要 str
,而不是 bytes
,因此您可能希望先 decode
content
。
我正在尝试使用 Python 3 的类型提示语法以及 MyPy 静态类型检查器。我现在正在编写一个接受 requests
响应对象的函数,我想知道如何指示类型。
也就是说,在下面的这段代码中,我可以把???
替换成什么?
import requests
def foo(request: ???) -> str:
return json.loads(request.content)['some_field']
r = requests.get("my_url")
return foo(r)
通过使用 Response
,或者提供完整路径:
def foo(request: requests.models.Response) -> str:
return json.loads(request.content)['some_field']
或者,将其保存为您选择的名称:
Response = requests.models.Response
def foo(request: Response) -> str:
return json.loads(request.content)['some_field']
p.s json.loads
需要 str
,而不是 bytes
,因此您可能希望先 decode
content
。