class A:
def __init__(self,n):
self.n=n
def __str__(self):
return f'A[{self.n}]'
print("====== 1 ======")
F=[]
a1=A(13)
def f():
print(a1)
F.append(f)
a2=A(17)
def f():
print(a2)
F.append(f)
for f in F:
f()
print("====== 2 ======")
F=[]
a=A(13)
def f():
print(a)
F.append(f)
a=A(17)
def f():
print(a)
F.append(f)
for f in F:
f()
print("====== 2.1 ======")
F=[]
a=A(13)
def f(*,a=a):
print(a)
F.append(f)
a=A(17)
def f(*,a=a):
print(a)
F.append(f)
for f in F:
f()
print("====== 3 ======")
F=[]
a=A(13)
def f():
print(a)
F.append(f)
del a
for f in F:
f()
Y2xhc3MgQToKICAgIGRlZiBfX2luaXRfXyhzZWxmLG4pOgogICAgICAgIHNlbGYubj1uCiAgICBkZWYgX19zdHJfXyhzZWxmKToKICAgICAgICByZXR1cm4gZidBW3tzZWxmLm59XScKCgoKcHJpbnQoIj09PT09PSAxID09PT09PSIpCgpGPVtdCgphMT1BKDEzKQpkZWYgZigpOgogICAgcHJpbnQoYTEpCkYuYXBwZW5kKGYpCgphMj1BKDE3KQpkZWYgZigpOgogICAgcHJpbnQoYTIpCkYuYXBwZW5kKGYpCgpmb3IgZiBpbiBGOgogICAgZigpCgpwcmludCgiPT09PT09IDIgPT09PT09IikKCkY9W10KCmE9QSgxMykKZGVmIGYoKToKICAgIHByaW50KGEpCkYuYXBwZW5kKGYpCgphPUEoMTcpCmRlZiBmKCk6CiAgICBwcmludChhKQpGLmFwcGVuZChmKQoKZm9yIGYgaW4gRjoKICAgIGYoKQogICAgCnByaW50KCI9PT09PT0gMi4xID09PT09PSIpCgpGPVtdCgphPUEoMTMpCmRlZiBmKCosYT1hKToKICAgIHByaW50KGEpCkYuYXBwZW5kKGYpCgphPUEoMTcpCmRlZiBmKCosYT1hKToKICAgIHByaW50KGEpCkYuYXBwZW5kKGYpCgpmb3IgZiBpbiBGOgogICAgZigpCgpwcmludCgiPT09PT09IDMgPT09PT09IikKCkY9W10KCmE9QSgxMykKZGVmIGYoKToKICAgIHByaW50KGEpCkYuYXBwZW5kKGYpCmRlbCBhCgpmb3IgZiBpbiBGOgogICAgZigpCg==