Python 制作Django';s CBV&x27;让我们得到一个实例方法
我目前正在构建一个Django应用程序,它使用单例对象。 我想将此对象另存为CBV变量,因为我不想为每次“get”调用初始化它 简而言之,我的问题是——你能把CBV的get函数变成实例方法而不是类方法吗? 如果是的话,我能把一个变量保存为实例变量吗 编辑-更好地解释我的问题: 我创建了一个类来处理与电子测量仪器的序列化连接。 这个类必须只有一个实例(singleton),如果创建另一个实例,则内存泄漏将使python崩溃 我希望通过以下方式将其与django一起使用: 获取对特定url地址的请求-> 视图将向instrument类实例询问数据-> 实例响应数据-> 视图返回带有数据的JsonResponse 我认为最好的方法是将CBV的get方法(其与我从中获取的url相关)作为实例方法,但这不是一个很好的实践Python 制作Django';s CBV&x27;让我们得到一个实例方法,python,django,django-class-based-views,Python,Django,Django Class Based Views,我目前正在构建一个Django应用程序,它使用单例对象。 我想将此对象另存为CBV变量,因为我不想为每次“get”调用初始化它 简而言之,我的问题是——你能把CBV的get函数变成实例方法而不是类方法吗? 如果是的话,我能把一个变量保存为实例变量吗 编辑-更好地解释我的问题: 我创建了一个类来处理与电子测量仪器的序列化连接。 这个类必须只有一个实例(singleton),如果创建另一个实例,则内存泄漏将使python崩溃 我希望通过以下方式将其与django一起使用: 获取对特定url地址的请求
我应该怎么做?正如我所说,
get
是一种实例方法
但你在这里混淆了责任。一个类应该只有一个职责。视图类负责响应请求并返回响应;这与仪器的连接完全不同。这应该是一个单独的类,在模块级实例化并在视图类中使用。
get
不是一个类方法?。你可以这样做,但为什么要这样做呢?@hspandher我需要使用某个类对象,如果get不是instancemethod,我就必须为每个get重新初始化对象(当我重新初始化它时,将丢失存储的数据)这肯定是错误的方法吗?每个请求都会重新创建一个实例,您需要一个类级属性来保留请求之间的状态。而get
是一个实例方法。但您几乎肯定不应该这样做。请确切说明您正试图做什么,以便我们可以推荐一个合适的解决方案。