Junior
მოყევით Python-ში კონტექსტის მენეჯერის გამოყენების მაგალითი.
sobes.tech AI
პასუხი AI-სგან
# ფაილის გახსნა:
# კონტექსტის მენეჯერის გამოყენება უზრუნველყოფს ფაილის ავტომატურ დახურვას,
# even თუ გამონაკლისი მოხდება.
with open('my_file.txt', 'w') as f:
# მონაცემების დაწერა ფაილში
f.write('Hello, world!\n')
f.write('ეს ტესტია.')
# საკუთარი კლასის გამოყენებით საკუთარი კონტექსტის მენეჯერის შექმნის მაგალითი:
class ManagedResource:
def __enter__(self):
print('რესურსი გამოყოფილია')
# შეიძლება დაბრუნდეს ობიექტი, რომელიც მიენიჭება 'as'-ის შემდეგ
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print('რესურსი გათავისუფლებულია')
# შეიძლება მართოს გამონაკლისები. True-ის დაბრუნება ამცირებს გამონაკლისს.
return False
# შექმნილი კონტექსტის მენეჯერის გამოყენება:
with ManagedResource() as res:
print('რესურსთან მუშაობა')
# res - ეს არის ობიექტი, რომელიც დაბრუნდა __enter__-დან
# დეკორატორის გამოყენებით საკუთარი კონტექსტის მენეჯერის შექმნის მაგალითი:
from contextlib import contextmanager
@contextmanager
def efficient_resource():
print('ეფექტური რესურსი გამოყოფილია')
try:
yield 'ეფექტური რესურსი'
finally:
print('ეფექტური რესურსი გათავისუფლებულია')
# დეკორატორით კონტექსტის მენეჯერის გამოყენება:
with efficient_resource() as eff_res:
print(f'გამოყენება: {eff_res}')