Download Latest Version Xiu Fu synccheckZhong De Cuo Wu source code.zip (456.6 kB)
Email in envelope

Get an email when there's a new version of itchat

Home / v1.3.5
Name Modified Size InfoDownloads / Week
Parent folder
itchat-1.3.5-py2.py3-none-any.whl 2017-03-31 38.6 kB
README.md 2017-03-31 1.3 kB
Xiu Fu Xun Huan Yin Yong source code.tar.gz 2017-03-31 434.0 kB
Xiu Fu Xun Huan Yin Yong source code.zip 2017-03-31 455.8 kB
Totals: 4 Items   929.8 kB 0

如果两个类互相引用将导致无法被正常回收,所以采取这种形式:

:::python
from weakref import ref

class D(object):
    def __init__(self, name):
        self.name = name
    def __del__(self):
        print('[deleted]: %s' % self.name)

class T(D):
    @property
    def pointer(self):
        return getattr(self, '_pointer', lambda: None)()
    @pointer.setter
    def pointer(self, value):
        self._pointer = ref(value)

def fn():
    t, d = T('t'), D('d')
    t.pointer, d.pointer = d, t

if __name__ == '__main__':
    fn()
    print('end')

在itchat中主要解决这样两个问题:

你需要对照该版本和前版本的结果比较差别。

:::python
from weakref import ref

from itchat.storage import templates

def fn():
    chatroom = templates.Chatroom()
    chatroom.memberList.append({})
    m = chatroom.memberList[0]
    return ref(m), ref(chatroom)

if __name__ == '__main__':
    a, b = fn()
    print(a(), b())

:::python
from weakref import ref

from itchat import Core

def fn():
    r = Core()
    return ref(r)

r = fn()
print(r())
Source: README.md, updated 2017-03-31