我阅读了Django的资料,并对implemenation about signal感兴趣。实际上,我想知道为什么函数_make_id
返回的不同取决于所传递的参数。
下面的代码就是我在说的
def _make_id(target):
if hasattr(target, '__func__'):
return (id(target.__self__), id(target.__func__))
return id(target)
有什么理由不只返回id(target)
吗?
答案 0 :(得分:0)
不确定这是否能回答您的问题,但是我认为这是因为实例方法暗示它已绑定到某些对象,并且出于架构原因,我想确保地址与函数ID一起使用,我确信已经过仔细考虑。在这个旧的SO线程中,更多有关__func__
的内容:python - call instance method using __func__