Python, эквивалентный оператору using в C # [дубликат]

Возможный дубликат:
Что эквивалентно блоку «using» C # в IronPython?

Я пишу какой-то IronPython, используя некоторые одноразовые объекты .NET, и задаюсь вопросом, есть ли хороший «питонический» способ делать это. В настоящее время у меня есть несколько операторов finally (и я полагаю, что в каждом из них также должна быть проверка на None - или переменная даже не будет существовать, если конструктор не работает?)

def Save(self):
    filename = "record.txt"
    data = "{0}:{1}".format(self.Level,self.Name)
    isf = IsolatedStorageFile.GetUserStoreForApplication()
    try:                
        isfs = IsolatedStorageFileStream(filename, FileMode.Create, isf)
        try:
            sw = StreamWriter(isfs)
            try:
                sw.Write(data)
            finally:
                sw.Dispose()
        finally:
            isfs.Dispose()
    finally:
        isf.Dispose()
6
задан Community 23 May 2017 в 12:24
поделиться