我有以下代码:
class Test:
def __init__(self, name):
self.name = name
def __enter__(self):
print(f'entering {self.name}')
def __exit__(self, exctype, excinst, exctb) -> bool:
print(f'exiting {self.name}')
return True
with Test('first') as test:
print(f'in {test.name}')
test = Test('second')
with test:
print(f'in {test.name}')
运行它会产生以下输出:
entering first
exiting first
entering second
in second
exiting second
但我希望它能产生:
entering first
in first
exiting first
entering second
in second
exiting second
为什么我的第一个示例中的代码没有被调用?