我在閱讀the source code of the incoming asyncio
package。請注意,在該方法結束時,有一條self = None
聲明。它有什麼作用?什麼是自我=無?
def _run(self):
try:
self._callback(*self._args)
except Exception as exc:
msg = 'Exception in callback {}{!r}'.format(self._callback,
self._args)
self._loop.call_exception_handler({
'message': msg,
'exception': exc,
'handle': self,
})
self = None # Needed to break cycles when an exception occurs.
我認爲它會刪除實例,但下面的測試並不建議這樣:
class K:
def haha(self):
self = None
a = K()
a.haha()
print(a) # a is still an instance
也許問題應該是「爲什麼可以將'self'設置爲'None'中斷週期?什麼週期?」 – satoru