拥有__enter__和__exit__ 属性的才可以被上下文管理 a = open('a.txt','w') dir(a) # 此时a有__enter__ 和 __exit__ 属性,所以才可进行打开与关闭,即可进行下文管理 with open('a.txt','w') as f: pass # 正确 with open(1,'w') as f: # 错误,1不存在__enter__ 和 __exit__ pass