Sobes.tech
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}')