在这段代码中,注释类型函数返回的正确方法是什么?

from requests import Request, Session

def make_request(method: str, url: str) -> ??? : # Response object will be returned
    request = Request(method, url).prepare()
    session = Session()
    r = session.send(request)
    return r

应该输入Response,还是应该使用TypeVar

推荐答案

我认为你应该进口Response件并使用它.创建TypeVar会使键入变得复杂,但没有充分的理由:

  1. 如果您的模块已经在某处使用了Response个(并因此导入),您甚至不会考虑不将其用于类型提示.
  2. 如果稍后向该模块引入另一个函数或其他内容,并且需要Response个类,那么将遇到TypeVar个与实际Response个不匹配的类
  3. 如果您的模块是从另一个模块(甚至是第三方模块)导入的,则返回Response的函数伪装成自定义TypeVar会使代码更加混乱.

Python相关问答推荐

如何根据情况丢弃大Pandas 的前n行,使大Pandas 的其余部分完好无损

计算所有前面行(当前行)中列的值

当密钥是复合且唯一时,Pandas合并抱怨标签不唯一

Pandas 填充条件是另一列

比较两个数据帧并并排附加结果(获取性能警告)

为什么我的Python代码在if-else声明中的行之前执行if-else声明中的行?

PywinAuto在Windows 11上引发了Memory错误,但在Windows 10上未引发

ModuleNotFound错误:没有名为flags.State的模块; flags不是包

对于一个给定的数字,找出一个整数的最小和最大可能的和

优化pytorch函数以消除for循环

如何调整QscrollArea以正确显示内部正在变化的Qgridlayout?

在vscode上使用Python虚拟环境时((env))

在www.example.com中使用`package_data`包含不包含__init__. py的非Python文件

Django admin Csrf令牌未设置

启动带有参数的Python NTFS会导致文件路径混乱

ruamel.yaml dump:如何阻止map标量值被移动到一个新的缩进行?

用SymPy在Python中求解指数函数

Python—为什么我的代码返回一个TypeError

在Google Drive中获取特定文件夹内的FolderID和文件夹名称

如何在信号的FFT中获得正确的频率幅值