পাইথনে, আপনি যদি কল না করেই কোনও ফাইল খুলেন close()
, বা ফাইলটি বন্ধ করেন তবে try
- finally
বা with
"বিবৃতি ব্যবহার না করেন , এটি কি সমস্যা? বা পাইথন আবর্জনা-সংগ্রহের উপর নির্ভর করে সমস্ত ফাইল বন্ধ করার জন্য কোডিং অনুশীলন হিসাবে যথেষ্ট? উদাহরণস্বরূপ, যদি কেউ এটি করে:
for line in open("filename"):
# ... do stuff ...
... এটি কি সমস্যা কারণ ফাইলটি কখনই বন্ধ করা যায় না এবং একটি ব্যতিক্রম ঘটতে পারে যা এটি বন্ধ হতে বাধা দেয়? বা for
ফাইলটি সুযোগের বাইরে চলে যাওয়ার কারণে এটি অবশ্যই বক্তব্যটির উপসংহারে বন্ধ হয়ে যাবে?
for
ব্লক এবং ফাংশন / শ্রেণি / মডিউলগুলির মধ্যে পার্থক্যের সাথে সম্পর্কিত নয় । এটি এর চেয়ে অনেক সহজ: বস্তুর স্কোপ নেই, কেবল নাম থাকে। এমন কোনও নাম নেই যা এই অবজেক্টটিকে বোঝায় তাই এখানে সুযোগে থাকার বা সুযোগের বাইরে যাওয়ার মতো কিছুই নেই।
for
লুপের সাথে যুক্ত হওয়ার সুযোগ রয়েছে এবং উল্লেখ করা হচ্ছে যে ফাইলটি সম্পূর্ণ ভিন্ন কারণে বন্ধ হয়ে যায়। পাইথনে কী স্কোপ রয়েছে তা এটি পায় না , কারণ এটি এখানে প্রাসঙ্গিক নয়।
for
। এর রেফারেন্স গণনা শূন্যে চলে যাবে, যার ফলে এটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে, তবে কেবল ফাংশন, ক্লাস এবং মডিউলগুলি পাইথনের স্কোপগুলি সংজ্ঞায়িত করে, অন্য যৌগিক বিবৃতি নয়।