Что эквивалентно этому в IronPython? Это просто блок try-finally?
using (var something = new ClassThatImplementsIDisposable()) { // stuff happens here }
IronPython поддерживает использование IDisposable с оператором with, поэтому вы можете написать что-то вроде этого:
IDisposable
with
with ClassThatImplementsIDisposable() as something: pass
IronPython (по состоянию на версии 2.6 кандидатов) поддерживает оператор with, который оборачивает объект IDisposable способом, аналогичным использованию.
С выпиской . Например:
with open("/temp/abc") as f: lines = f.readlines()
Есть оператор with: http://www.ironpythoninaction.com/magic-methods.html#context-managers-and-the-with-statement
with open(filename) as handle: data = handle.read() ...
блок использования на самом деле следующий под капотом:
try { (do something unmanaged here) } finally { unmanagedObject.Dispose(); }
Надеюсь, что это поможет вам понять логику использования оператора.