12

我正在尝试使用 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)
4

1 回答 1

15

通过使用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']

psjson.loads期望 a str,而不是bytes你可能想要decodecontent一个。

于 2017-03-22T13:23:03.623 回答