Python Django对象内存使用

Python Django对象内存使用,python,django,Python,Django,在Java环境中,我非常惊讶Python/Django通常是多么简单,它如何处理内存中的对象。有一件事我一直没有找到一个明确的答案,那就是实例化对象的最佳实践是什么,以确保当通过Django发出请求时,每个请求都引用同一个对象 例如,在我的views.py文件中,我可以引用UserService()类。实例化这个类的最佳实践是什么 在def/class视图中这样做安全吗 def test_view(request, format=None): service = UserService(

在Java环境中,我非常惊讶Python/Django通常是多么简单,它如何处理内存中的对象。有一件事我一直没有找到一个明确的答案,那就是实例化对象的最佳实践是什么,以确保当通过Django发出请求时,每个请求都引用同一个对象

例如,在我的views.py文件中,我可以引用UserService()类。实例化这个类的最佳实践是什么

在def/class视图中这样做安全吗

def test_view(request, format=None):
    service = UserService()
    service.to_something()
    return Response( status=status.HTTP_200_OK )
还是应该在views.py文件的顶部执行,然后在def/class视图中引用

service = UserService()

def test_view(request, format=None):        
    service.to_something()
    return Response( status=status.HTTP_200_OK )
还是应该在其他地方实例化

目标是确保创建和引用的对象数量最少。我知道python在创建每个对象时都会对其进行引用计数,但我不清楚如何将其放入其中


另外,在创建对象时,让我们说一个服务。首先在init方法中实例化希望在整个服务中使用的类有多必要?考虑到python-GC的效率,我一直在想,当它走向最佳实践和尽可能的python时,你需要更具体地说明什么是UserService。通常在Python中,我们不关心服务或工厂,只调用函数。这是服务保持状态吗?如果不是,它可能根本就不应该是一门课。如果是这样,您希望在请求之间保留该状态吗?UserService是我自己的库中的一个类,它包含我的一些核心业务逻辑。我非常习惯于创建类,所以我不太考虑不需要它们:)。帮助回答有关保持状态的问题。我试图做的是弄清楚我是否需要通过IoC或DI来实现对象实例化,这样我就不会一遍遍地重建类。所以,是的,我想在请求之间保留状态。我主要关心的是内存膨胀。如果我不使用类,而只是在UserService.py文件中使用函数,那么在代码库的不同位置引用py文件时,这会被认为是更具pythonic性的,并且会减少内存膨胀,这是否安全?对不起,我的提问时间太长了。我一直在努力掌握如何实现class/py文件,以确保应用程序中的内存效率达到最佳水平。内存在这里并不是一个真正的问题,尤其是在没有与类实例相关联的数据的情况下。但在任何情况下,当函数结束并回收内存时,函数内实例化的类将超出范围;然而,在模块级实例化的类将与流程保持相同的时间(Web服务器决定流程持续的时间)。Pythonic要做的事情是将所有用户函数都放在一个模块中,并在必要时导入。感谢Daniel的反馈。