gpt4 book ai didi

python - Django 未使用的方法参数

转载 作者:行者123 更新时间:2023-12-01 03:30:36 25 4
gpt4 key购买 nike

如何处理 Django 中未使用的变量(我主要谈论基于类的 View )?

 def post(self, request, *args, **kwargs):
# request, args, kwargs are not used in this post method
..
return ..

删除它们安全吗?

here我还看到, *_ 可以用于我不关心的事情。

为什么?为了清理代码并避免 IDE 警告。

我可以安全地 del *args**kwargs,但是 request 怎么样? request 当使用基于类的 View 时,我可以稍后使用 self.request 访问它 - 实际上我这样做了,但我能确定我不会有问题吗?

我明白了here django 请求是不可变的,但在所有情况下都不是。

我的问题是,如何处理它们?

最佳答案

就调用它们而言 - 您不会使用它们,正如您可能已经知道的那样。 *args**kwargs 完全是可选的,因此不要传递它们。在上面的示例中,您可以仅使用请求对象来调用该 View 方法。

就编写它们和简洁的代码而言:如果这些是您的 CBV,请将它们从声明中删除;如果他们是arguments inherited from the generic基类,那么您肯定不会在代码中看到它们吗?

如果您从垃圾收集的角度询问,那么它们将在 View 函数运行后过期并且不再被 View 命名空间引用。 Ned's coverage of variables in python is always relevant.

就惯用的 Python 而言,显式删除变量是非常不寻常的,并且会使代码的可读性显着降低。它也不会,例如,free the memory ,尽管我明白这不是您询问的原因之一。

关于请求对象的细节 - 请求对象需要在基于函数的 View 中使用渲染。在 CBV 中,由于语义差异,它是一个属性而不是变量,但即使您不直接使用它,Django 也需要 request object to generate the HttpResponse

此外,the generic view base class docs have further details on that flow down through the stack.

关于python - Django 未使用的方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40982544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com