आयरनपीथन में इसके बराबर क्या है? क्या यह सिर्फ एक कोशिश अंततः ब्लॉक है?आयरनपीथन में सी # "उपयोग" ब्लॉक के बराबर क्या है?
using (var something = new ClassThatImplementsIDisposable())
{
// stuff happens here
}
आयरनपीथन में इसके बराबर क्या है? क्या यह सिर्फ एक कोशिश अंततः ब्लॉक है?आयरनपीथन में सी # "उपयोग" ब्लॉक के बराबर क्या है?
using (var something = new ClassThatImplementsIDisposable())
{
// stuff happens here
}
IronPython with
बयान के साथ IDisposable
का उपयोग कर का समर्थन करता है, तो आप कुछ इस तरह लिख सकते हैं::
with ClassThatImplementsIDisposable() as something:
pass
अपने खुद के प्रकार के लिए अच्छा विकल्प है, लेकिन ढांचे के प्रकार के लिए काम नहीं करता है। –
कोई विशेष कारण यह फ्रेमवर्क प्रकारों के साथ काम नहीं करता है? –
क्या आप निश्चित हैं? मैंने अभी 'स्ट्रीमवाइटर' के साथ प्रयास किया है और ऐसा लगता है कि यह अपेक्षित काम करता है। –
IronPython (2.6 रिलीज उम्मीदवारों के रूप में) with
बयान है, जो उपयोग करने के समान तरीके से एक IDisposable वस्तु लपेटता का समर्थन करता है।
try {
(do something unmanaged here)
}
finally {
unmanagedObject.Dispose();
}
आशा इसकी सहायता से आप कथन का उपयोग के पीछे तर्क समझ में:
ब्लॉक का उपयोग हुड के नीचे निम्नलिखित वास्तव में है।
with
बयान नहीं है: http://www.ironpythoninaction.com/magic-methods.html#context-managers-and-the-with-statement
with open(filename) as handle:
data = handle.read()
...
नहीं। "साथ" कथन केवल लॉक करने योग्य ऑब्जेक्ट्स के साथ काम करता है, किस श्रेणी फ़ाइल ऑब्जेक्ट्स से संबंधित होता है। यह * अनियंत्रित प्रकार, कहते हैं, पूर्णांक के साथ काम नहीं करता है। – Teddy
with open("/temp/abc") as f:
lines = f.readlines()
यह बॉक्स के बाहर IDISposable का समर्थन नहीं करता है। यह एक __exit__ रूटीन निर्दिष्ट के साथ अजगर प्रकार के साथ काम करता है। –
के इस सूत्र के लिए कुछ अधिकार जोड़ें: http://lists.ironpython.com/ उदाहरण के लिए पाइपर्मेल/उपयोगकर्ता-ironpython.com/2008-जुलाई/007826.html –
मुझे इस प्रश्न के लिए प्रासंगिक में कुछ भी दिखाई नहीं देता है। –