【发布时间】:2014-04-27 09:58:52
【问题描述】:
我正在尝试学习 python,我登陆了
与..as
construct,使用如下:
with open("somefile.txt", 'rt') as file:
print(file.read())
# at the end of execution file.close() is called automatically.
因此,作为一种学习策略,我尝试执行以下操作:
class Derived():
def __enter__(self):
print('__enter__')
def __exit__(self, exc_type, exc_value, traceback):
print('__exit__')
with Derived() as derived:
print(derived)
我得到了这个输出:
__enter__
None
__exit__
我的问题是:
- 为什么
print(derived)返回的是None对象而不是Derived对象?
【问题讨论】:
-
__enter__必须返回绑定到dervied的对象。
标签: python