【问题标题】:not understanding a call in django不理解 django 中的呼叫
【发布时间】:2016-04-19 19:50:27
【问题描述】:
from socketio.namespace import BaseNamespace

class ChatNamespace(BaseNamespace):
        _registry = {} 
       def initialize(self):
           self._registry[id(self)] = self

我正在查看此代码,但不理解 [id(self)] 为什么调用 ID 以及它如何影响当前代码行?

【问题讨论】:

    标签: python django sockets websocket socket.io


    【解决方案1】:

    _registry 是一个字典,具体来说,它是一个类级别的对象(意味着这个类的每个实例共享同一个字典。id 是一个内置的python方法(https://docs.python.org/2/library/functions.html#id),它返回的“身份”一个对象,并保证在其生命周期内对于该对象是唯一且恒定的。(对于 CPython,这是对象的内存地址。)。换句话说,它所做的是添加一个新的注册表项,其键为此对象的“全局”唯一值,并且该值是该对象。

    【讨论】:

    • 啊好吧,这不是我们有索引的原因吗!
    • 你能澄清一下你的意思吗?其中一些取决于其余代码的作用...如果您的意思是数组索引,他们为什么不将 _registry 设为列表并将 self 附加到该列表,这取决于他们想要做什么使用代码......它很可能被过度设计
    猜你喜欢
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多