Middle
179
Kas ir konteksta pārvaldnieks?
Atbilde no AI
sobes.tech AI
Python konteksta pārvaldnieks ir objekts, kas definē izpildes kontekstu, pārvaldot resursu piešķiršanu un atbrīvošanu. Tas īsteno konteksta pārvaldnieka protokolu, kas ietver burvju metodes __enter__ un __exit__.
__enter__: tiek izsaukts, ieejot kontekstā, parasti atgriežot pārvaldāmo resursu.__exit__: tiek izsaukts, iznākot no konteksta, pat ja ir notikusi izņēmuma situācija. Atbild par resursa atbrīvošanu. Saņem trīs argumentus: izņēmuma tipu, izņēmuma objektu un steka izsekošanu (vaiNone, ja izņēmuma nav).
Bieži tiek izmantots ar with operatoru, lai automātiski pārvaldītu resursus, piemēram, failus, tīkla savienojumus vai bloķēšanas mehānismus.
# Piemērs, kā izmantot konteksta pārvaldnieku ar failu
with open('myfile.txt', 'r') as f:
content = f.read()
# Fails automātiski aizveras pēc `with` bloka beigām
Konteksta pārvaldniekus var izveidot, īstenojot protokolu vai izmantojot dekoratoru @contextmanager no contextlib moduļa.
# Piemērs, kā izveidot konteksta pārvaldnieku ar dekoratoru
def timer():
import time
start_time = time.time()
yield # Ieejas punkts kontekstā
end_time = time.time()
print(f"Izpildes laiks: {end_time - start_time:.2f} sekundes")
# Izmanto izveidoto konteksta pārvaldnieku
with timer():
# Kods, kas jāizmēra
import time
time.sleep(1)