Dupliqué possible: strong>
Quel est l'équivalent du c # "en utilisant" Bloc dans IronPython? P>J'écris du IronPython en utilisant des objets jetables .NET et vous vous demandez s'il existe une belle façon "pythonique" de faire cela. Actuellement, j'ai un tas d'énoncés enfin (et je suppose qu'il devrait y avoir des chèques pour personne dans chacun d'eux aussi - ou la variable n'existe même pas si le constructeur échoue?) P>
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()
4 Réponses :
Python 2.6 introduit le question DUP avec réponse autorité: est l'équivalent du bloc C # "en utilisant" dans ironpython? p> avec la relève code>, qui permet de nettoyer automatiquement les objets lorsqu'ils quittent le
avec la relève code>. Je ne sais pas si les bibliothèques IronPython le supportent, mais ce serait un ajustement naturel. P>
merci, cela m'a conduit à cette question: Stackoverflow.com/questions/1757296/... , que je n'ai pas trouvé dans mes recherches précédentes
Si je comprends bien correctement, il semble que l'équivalent est le avec code>
déclaration. Si vos classes définissent les gestionnaires de contexte, ils seront appelés automatiquement après le bloc. P>
Votre code avec quelques commentaires:
sw.Dispose()
Vous pouvez également utiliser avec une déclaration avec une classe IsolateStorageFile, si nécessaire.