- class A: 
-     def __init__(self, x): 
-         self.x = x 
-         self.cleanup_done = False 
-   
-     def close(self): 
-         print(f'A x={self.x} being cleaned up.') 
-         self.cleanup_done = True 
-   
-   
-     def __del__(self): 
-         if not self.cleanup_done: 
-             self.close() 
-   
-   
- class B: 
-     def __init__(self, x): 
-         self.a = A(x) 
-   
-     def foo(self): 
-         print("I am doing some work") 
-   
-   
- def bar(): 
-     b = B(9) 
-     b.foo() 
-   
- def other_function(): 
-     pass 
-   
- if __name__ == '__main__': 
-     bar() 
-     other_function() 
				Y2xhc3MgQToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB4KToKICAgICAgICBzZWxmLnggPSB4CiAgICAgICAgc2VsZi5jbGVhbnVwX2RvbmUgPSBGYWxzZQoKICAgIGRlZiBjbG9zZShzZWxmKToKICAgICAgICBwcmludChmJ0EgeD17c2VsZi54fSBiZWluZyBjbGVhbmVkIHVwLicpCiAgICAgICAgc2VsZi5jbGVhbnVwX2RvbmUgPSBUcnVlCiAgICAgICAgCgogICAgZGVmIF9fZGVsX18oc2VsZik6CiAgICAgICAgaWYgbm90IHNlbGYuY2xlYW51cF9kb25lOgogICAgICAgICAgICBzZWxmLmNsb3NlKCkKCgpjbGFzcyBCOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIHgpOgogICAgICAgIHNlbGYuYSA9IEEoeCkKCiAgICBkZWYgZm9vKHNlbGYpOgogICAgICAgIHByaW50KCJJIGFtIGRvaW5nIHNvbWUgd29yayIpCgoKZGVmIGJhcigpOgogICAgYiA9IEIoOSkKICAgIGIuZm9vKCkKCmRlZiBvdGhlcl9mdW5jdGlvbigpOgogICAgcGFzcwoKaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgIGJhcigpCiAgICBvdGhlcl9mdW5jdGlvbigp