71_gc_bug.py 606 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # a=[]
  2. # import gc
  3. # gc.collect()
  4. # # a.append(a)
  5. # print(globals().items())
  6. # del a
  7. # print(list(globals().items()))
  8. # print(globals()['gc'])
  9. # gc.collect()
  10. d = object()
  11. d.__name__ = '__main__'
  12. d.__package__ = ''
  13. d.__path__ = '__main__'
  14. d.a = []
  15. d.gc = 1
  16. assert d.gc == 1
  17. del d.a
  18. assert not hasattr(d, 'a')
  19. assert d.gc == 1
  20. # [0, 1, 6, 7, 4, 5, 2, 3]
  21. # 0 __name__ [0]
  22. # 1 __package__ [1]
  23. # 2 nil
  24. # 3 nil
  25. # 4 gc [4]
  26. # 5 nil
  27. # 6 __path__ [2]
  28. # 7 a [3]
  29. import gc
  30. gc.collect()
  31. a = []
  32. del a
  33. assert gc.collect() == 1
  34. a = []
  35. a.append(a)
  36. del a
  37. assert gc.collect() == 1