سوال پایتونی:
در مورد مفهوم Context Managers در Python توضیح دهید. چگونه میتوان یک Context Manager سفارشی ایجاد کرد؟ یک مثال عملی ارائه دهید.
Context Managers
در Python ابزارهایی برای مدیریت منابع (مانند فایلها، قفلها و اتصالات پایگاه داده) هستند. آنها اطمینان حاصل میکنند که منابع به درستی آزاد شوند، حتی در صورت رخ دادن خطا یا استثنا.
برای ایجاد یک Context Manager سفارشی، شما باید یک کلاس ایجاد کنید که دو متد
مثال عملی: فرض کنید میخواهیم یک Context Manager برای باز کردن و بستن فایلها بنویسیم:
در این مثال،
#python #context_manager
@Syntax_fa
در مورد مفهوم Context Managers در Python توضیح دهید. چگونه میتوان یک Context Manager سفارشی ایجاد کرد؟ یک مثال عملی ارائه دهید.
Context Managers
در Python ابزارهایی برای مدیریت منابع (مانند فایلها، قفلها و اتصالات پایگاه داده) هستند. آنها اطمینان حاصل میکنند که منابع به درستی آزاد شوند، حتی در صورت رخ دادن خطا یا استثنا.
برای ایجاد یک Context Manager سفارشی، شما باید یک کلاس ایجاد کنید که دو متد
__enter__
و __exit__
را پیادهسازی میکند. متد __enter__
باید منبع را آماده کند و آن را برگرداند. متد __exit__
باید منبع را آزاد کند و با استثناهای رخ داده به درستی برخورد کند.مثال عملی: فرض کنید میخواهیم یک Context Manager برای باز کردن و بستن فایلها بنویسیم:
class FileManager:
def __init__(self, filename, mode):
self.filename = filename
self.mode = mode
def __enter__(self):
self.file = open(self.filename, self.mode)
return self.file
def __exit__(self, exc_type, exc_value, traceback):
self.file.close()
with FileManager('data.txt', 'w') as f:
f.write('Hello, World!')
در این مثال،
FileManager
یک کلاس Context Manager است. متد __enter__
فایل را باز میکند و شیء فایل را برمیگرداند. متد __exit__
فایل را میبندد، حتی اگر استثنایی در بلوک with
رخ دهد.#python #context_manager
@Syntax_fa
👍5🔥1