В общем, я пытался понять, как работает ключевое слово "as" в python, и изучил 3 случая для него
Случай 1: import foo as bar
Случай 2:with foo() as bar:
Случай 3: except Exception as e:
Я понимаю, как работают первые два случая, случай 1 назначает имя пакета другому имени, случай 2 работает с использованием __entry__
и__exit__
методы внутри класса (скажем, для обеспечения закрытия ресурсов), где __entry__
возвращает класс, которому назначается bar
.
Однако, случай 3 кажется другим, я просматривал документы, которыеказалось, не помогло и не могло найти много объяснений нигде.В этом случае Exception.args
работает иначе, чем e.args
, и я пытался выяснить, как это работает за кулисами, то есть какие бы методы ни вызывались, или почему он ведет себя по-другому