as — Это не команда как таковая, это ключевое слово, используемое как часть оператора with :
with open("myfile.txt") as f:
text = f.read()
Объекту после as присваивается результат выражения, обрабатываемого контекстным менеджером with .
Другое использование — переименование импортированного модуля:
import numpy as np
таким образом, теперь вы можете использовать имя np вместо numpy .
Третье использование — предоставить вам доступ к объекту Exception :
try:
f = open("foo")
except IOError as exc:
# Now you can access the Exception for more detailed analysis
Зачем with
оператор with упрощает обработку исключений, инкапсулируя общие задачи подготовки и очистки в так называемых контекстных менеджерах . Более подробную информацию можно найти в PEP 343 . Например, оператор open сам по себе является менеджером контекста, который позволяет вам открывать файл, сохранять его открытым до тех пор, пока выполнение выполняется в контексте оператора with , где вы его использовали, и закрывать его, как только вы покидаете контекст, независимо от того, покинули ли вы его из-за исключения или во время обычного потока управления. Таким образом, оператор with может использоваться аналогично шаблону RAII в C++: некоторый ресурс приобретается оператором with и освобождается, когда вы покидаете контекст with .
С более чем одним элементом диспетчеры контекста обрабатываются так, как если бы несколько withоператоров были вложены:
with A() as a, B() as b: suite
эквивалентно
with A() as a:
with B() as b:
suite