Sobes.tech
Junior

Ներկայացրեք կոնտեքստային մենեջերի օգտագործման օրինակ Python-ում։

sobes.tech AI

Պատասխան AI-ից

# Ֆայլի բացում:
# Կոնտեքստային մենեջերի օգտագործումը ապահովում է ֆայլի ավտոմատ փակումը,
# նույնիսկ եթե տեղի ունենա արտահայտություն:
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__-ից

# Իմ սեփական կոնտեքստային մենեջերի ստեղծման օրինակ՝ օգտագործելով decorator-ը:
from contextlib import contextmanager

@contextmanager
def efficient_resource():
    print('Արդյունավետ ռեսուրսը տրամադրված է')
    try:
        yield 'Արդյունավետ ռեսուրս'
    finally:
        print('Արդյունավետ ռեսուրսը ազատ է արձակվել')

# Օգտագործում decorator-ով կոնտեքստային մենեջեր:
with efficient_resource() as eff_res:
    print(f'Օգտագործում ենք: {eff_res}')