কম্পিউটার টিউটোরিয়াল

পাইথন কনটেক্সট ম্যানেজার টাইপস (Context Manager Types)


পাইথনে রানটাইম কনটেক্সট with স্টেটমেন্ট দিয়ে সাপোর্ট করা হয়। কনটেক্সট কনটেক্সট ম্যানেজার দিয়ে ডিফাইন করা হয়। কনটেক্সট ম্যানেজার ব্যবহার করে ইউজার-ডিফাইনড ক্লাস তৈরি করে রানটাইম কনটেক্সট ডিফাইন করা যায়। এটি স্টেটমেন্ট বডি এক্সিকিউট হওয়ার আগে টাস্কে ঢুকায় এবং স্টেটমেন্ট বডি শেষ হলে এন্ড করে।

কনটেক্সট ম্যানেজারের জন্য দুটি মেথড রয়েছে:

__enter__() মেথড

__enter__() মেথড রানটাইম কনটেক্সটে প্রবেশ করতে ব্যবহৃত হয়। এটি বর্তমান অবজেক্ট অথবা অন্য কোনো সম্পর্কিত অবজেক্ট রিটার্ন করে। রিটার্ন করা মান with স্টেটমেন্টের as ক্লজের আইডেন্টিফায়ারের সাথে বাঁধা হয়।

__exit__(exc_type, exc_val, exc_tb) মেথড

__exit__() মেথড একটি বুলিয়ান টাইপের ফলাফল রিটার্ন করে। এটি ঘটা এক্সসেপশন নির্দেশ করে। যদি with স্টেটমেন্টের জন্য কোনো এক্সসেপশন থাকে, তবে এটি এন্ড ব্লকে যাবে।

উদাহরণ কোড

class MyFileManager:    def __init__(self, fname):       self.file_name = fname    def __enter__(self):       self.myFile = open(self.file_name, 'r')       return self.myFile    def __exit__(self, exc_type, exc_val, exc_tb):       if self.myFile:       self.myFile.close()    with MyFileManager('sampleTextFile.txt') as myFile:    x = myFile.read() print(x)

আউটপুট

Test File. We can store different contents in this file ~!@#$%^&*()_+/*-+\][{}|:;"'<.>/,'"]

  1. পাইথনে Kivy-তে Checkbox উইজেট ব্যবহার

  2. পাইথন Kivy-তে বাটন একশন (Button Action) - ক্লিক ইভেন্ট হ্যান্ডলিং

  3. পাইথন Tkinter-এ কল্যাপসিবল পেন (Collapsible Pane) তৈরি করা

  4. পাইথনে ইনহেরিটেন্স (Inheritance)