Doi stiluri de achiziție sunt suportate: achiziție explicite și implicite.
Achiziție implicit este numit astfel deoarece caută atributele din mediul automat ori de câte ori un atribut nu poate fi obținut direct de la un obiect sau prin moștenire.
Un atribut poate fi achizitionat implicit dacă numele său nu începe cu o subliniere.
Pentru a sprijini achiziționarea implicit, clasa ar trebui să moștenească de la clasa Acquisition.Implicit-mix în.
Atunci când este utilizat achiziția explicit, atribute nu se obțin în mod automat din mediul. În schimb, trebuie să fie utilizate aq_acquire metoda.
Achiziție este scris în Python.
Achiziționarea oferă o modalitate puternică de a împărtăși dinamic informații între obiecte. Zope 2 foloseste achiziție pentru un număr de caracteristicile sale cheie, inclusiv de securitate, publicarea obiect, și DTML căutare variabilă.
Achiziția oferă, de asemenea, o soluție elegantă la problema referințelor circulare pentru multe clase de probleme. În timp ce achiziția este puternic, trebuie să aveți grijă atunci când se utilizează de achiziție în aplicațiile dumneavoastră.
Detaliile pot obține complex, mai ales cu diferențele dintre dobândirea de context și achiziționarea de izolare
Ce este nou în această versiune:.
- Asigurați-pur-Python achizitor obiecte de uz cooperare metodă de superclasa __getattribute__, ca punerea în aplicare C.
- pură Python implicit învelișul achiziție permite obiecte pentru a utiliza obiect .__ __ getAttribute (auto, nume) înfășurat. Aceasta diferă de la punerea în aplicare C, dar este important pentru compatibilitate cu versiunile pure-Python de biblioteci, cum ar fi persistent.
Ce este nou în versiunea 4.2.1:
- Treci teste readme.rst atunci când testele sunt conduse în afara o verificare sursă.
Ce este nou în versiunea 4.2:
- Treci teste readme.rst atunci când testele sunt conduse în afara unei surse checkout.
Ce este nou în versiunea 4.1:
- Treci teste readme.rst atunci când testele sunt conduse în afara unei surse checkout.
Ce este nou în versiunea 4.0a1:
- Ridicați RuntimeError: recursivitate detectat in achizitia de înfășurare, dacă un obiect cu un puncte cursorul __parent__ la un înveliș care la punctele rândul său la obiectul original.
- Preveniti ambalaje să fie create în timp ce accesarea __parent__ pe tipuri de derivate din clase explicite sau implicite de bază.
Ce este nou în versiunea 2.13.8:
- fix un segfault pe platforme 64bit la furnizarea explicită argument la metoda aq_acquire de un înveliș de achiziție.
Ce este nou în versiunea 2.13.7:
- Fixed bug: Atunci când un obiect nu a implementat __unicode__ , de asteptare unicode (împachetat) a fost de asteptare __str__ cu sine neambalate.
Ce este nou în versiunea 2.13.6:.
- Adăugați aq_explicit la IAcquisitionWrapper
- Fixed bug: unicode (înfășurat) nu a fost de asteptare metoda __unicode__ pe obiectele împachetate .
Ce este nou în versiunea 2.13.5:
- teste unitare fixe care nu au pe 64bit Python pe Windows Mașini.
Ce este nou în versiunea 2.13.4:.
- greșeli fixă în Acquisition.h
Ce este nou în versiunea 2.13.3:
- Utilizați doctest modulul de biblioteca standard și nu mai depinde de zope.testing.
Ce este nou în versiunea 2.13.2:
- Dă ambele clase wrapper o metodă __getnewargs__, care provoacă optimizarea ZODB să eșueze și a crea referințe persistente folosind _p_oid singur. Acest lucru se întâmplă să fie OID persistentă a obiectului înfășurat. Acest lucru permite aceste obiecte să fie persistat corect, chiar dacă acestea sunt transmise ZODB într-o stare ambalate.
- Adaugat teste lipsa de http://dev.plone.org/plone/ticket/10318. Acest lucru arată o margine caz în care ambalaje AQ pot fi decapate folosind combinația specifică de cPickle, zeama protocol una și o clasă Pickler personalizat cu un cârlig inst_persistent_id. Din păcate, aceasta este combinația exactă utilizată de ZODB3.
Comentariile nu a fost găsit