Любая рифма или причина того, почему вызываемый вызов не может быть вызван в Python 3.5 with
заявление?Почему не вызываемый вызываемый внутри Python с блоком?
class Seriously(object):
def __init__(self, name):
self.name = name
def __enter__(self):
print("Enter " + self.name)
def __call__(self):
print("Call " + self.name)
def __exit__(self, type, value, traceback):
print("Exit " + self.name)
a = Seriously('a')
a.__enter__()
a()
a.__enter__()
with Seriously('b') as b:
b()
серьезно производит
Enter a
Call a
Enter a
Enter b
Exit b
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-91a5d11e1b2e> in <module>()
18
19 with Seriously('b') as b:
---> 20 b()
TypeError: 'NoneType' object is not callable
Что я отсутствующий в PEP 343?
'return self' в конце __call__ сделал. Принят когда-то возможность, спасибо. –