weakref

Python weakref moduli

❮ Python o‘rnatilgan modullari


Misol

Obyektga kuchsiz havola (weak reference) yarating:

import weakref class Person:   def __init__(self, name):     self.name = name person = Person('Emil') weak_person = weakref.ref(person) print(f'Name: {weak_person().name}') del person print(f'After deletion: {weak_person()}')
O‘zingiz sinab ko‘ring »

Ta’rif va qo‘llanilishi

weakref moduli obyektlarga ularning axlat yig‘uvchi (garbage collector) tomonidan tozalanishiga to‘sqinlik qilmaydigan kuchsiz havolalar yaratadi.

Undan ma’lumotlar tuzilmalarida (keshlar, kuzatuvchilar yoki callback funksiyalari kabi) havolalar siklining oldini olish yoki obyektlarni xotirada ushlab turmasdan ularga havolalarni saqlash uchun foydalaning.

Eslatma: Hamma obyektlarga ham kuchsiz havola yaratib bo‘lmaydi. Kuchsiz havola yaratish mumkin bo‘lgan odatiy obyektlarga sinf nusxalari, funksiyalar va metodlar kiradi.


A’zolar

A’zo Tavsif
CallableProxyTypeChaqiriladigan obyektlarga kuchsiz havola proksilari uchun ishlatiladigan tip.
ProxyTypeChaqirib bo‘lmaydigan obyektlarga kuchsiz havola proksilari uchun ishlatiladigan tip.
ReferenceTypeStandart kuchsiz havolalar uchun ishlatiladigan tip ('ref' bilan bir xil).
WeakKeyDictionaryO‘z kalitlariga kuchsiz havolalarni saqlaydigan lug‘at (dictionary).
WeakMethodMetod obyektlari uchun maxsus kuchsiz havola.
WeakSetO‘z elementlariga kuchsiz havolalarni saqlaydigan Set (to‘plam).
WeakValueDictionaryO‘z qiymatlariga kuchsiz havolalarni saqlaydigan lug‘at (dictionary).
finalizeObyekt yo‘q qilinishi arafasida ishga tushadigan funksiyani ro‘yxatdan o‘tkazadi.
getweakrefcount()Obyektga nechta kuchsiz havola ishora qilishini sanaydi.
getweakrefs()Obyektga ishora qiluvchi barcha kuchsiz havolalar ro‘yxatini (list) oladi.
proxy()Obyekt kabi ishlaydigan, lekin uni xotirada ushlab turmaydigan proksi yaratadi.
ref()Axlat yig‘ishga (garbage collection) to‘sqinlik qilmaydigan kuchsiz havola yaratadi.

❮ Python o‘rnatilgan modullari

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!