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}')