Sono supportati due stili di acquisizione: acquisizione espliciti ed impliciti.
Acquisizione implicita è così chiamato perché cerca per attributi dall'ambiente automaticamente ogni volta che un attributo non può essere ottenuto direttamente da un oggetto o attraverso l'ereditarietà.
Un attributo può essere acquisito implicitamente se il suo nome non inizia con un carattere di sottolineatura.
Per supportare l'acquisizione implicita, la classe dovrebbe ereditare dalla classe Acquisition.Implicit mix-in.
Quando viene utilizzato acquisizione esplicita, attributi non vengono ottenuti automaticamente dall'ambiente. Invece, è necessario utilizzare il metodo aq_acquire.
L'acquisizione è scritto in Python.
Acquisition fornisce un modo potente per condividere in modo dinamico le informazioni tra gli oggetti. Zope 2 utilizza acquisizione per un certo numero delle sue caratteristiche principali, tra cui la sicurezza, oggetto di pubblicazione, e DTML ricerca variabile.
Acquisition fornisce anche una soluzione elegante al problema di riferimenti circolari per molte classi di problemi. Mentre l'acquisizione è potente, si dovrebbe prendere cura quando si utilizza l'acquisizione nelle applicazioni.
I dettagli possono ottenere complessa, soprattutto con le differenze tra l'acquisizione di contesto e l'acquisizione da contenimento
Cosa c'è di nuovo in questa versione:.
- Fare il puro Python Acquirer oggetti cooperativo utilizzare il metodo della superclasse __getattribute__, come l'implementazione C.
- Il wrapper acquisizione puro Python implicito permette avvolto oggetti da utilizzare oggetto .__ getattribute __ (self, name). Questo differisce dall'implementazione C, ma è importante per la compatibilità con le versioni puro Python delle librerie come persistente.
Cosa c'è di nuovo nella versione 4.2.1:
- Vai test readme.rst quando i test è gestita al di fuori un checkout fonte.
Cosa c'è di nuovo nella versione 4.2:
- Salta test readme.rst quando i test vengono eseguiti al di fuori di una fonte cassa.
Cosa c'è di nuovo nella versione 4.1:
- Salta test readme.rst quando i test vengono eseguiti al di fuori di una fonte cassa.
Cosa c'è di nuovo nella versione 4.0a1:
- Sollevare RuntimeError: ricorsione rilevata nell'acquisizione involucro se un oggetto con un puntatore __parent__ punta a un wrapper che in punti di svolta per l'oggetto originale.
- involucri Impedire da creare durante l'accesso __parent__ su tipi derivati dalle classi espliciti o di base implicito.
Cosa c'è di nuovo nella versione 2.13.8:
- Risolto un segfault su piattaforme a 64 bit che prestano il esplicito argomento al metodo aq_acquire di un involucro di acquisizione.
Cosa c'è di nuovo nella versione 2.13.7:
- Corretto il bug: Quando un oggetto non ha applicato __unicode__ , chiamando unicode (imbustati) chiamava __str__ con un auto da scartare.
Cosa c'è di nuovo nella versione 2.13.6:.
- Aggiungi aq_explicit a IAcquisitionWrapper
- Corretto il bug: unicode (imbustati) non era chiamando un metodo __unicode__ su oggetti avvolti .
Cosa c'è di nuovo nella versione 2.13.5:
- test di unità fisse che non sono riusciti a 64bit Python su Windows macchine.
Cosa c'è di nuovo nella versione 2.13.4:.
- errore di battitura fisso in Acquisition.h
Cosa c'è di nuovo nella versione 2.13.3:
- Utilizza il modulo doctest della libreria standard e non più dipendere zope.testing.
Cosa c'è di nuovo nella versione 2.13.2:
- Dare entrambe le classi wrapper un metodo __getnewargs__, che provoca l'ottimizzazione ZODB a fallire e creare riferimenti persistenti utilizzando il _p_oid solo. Questo sembra essere l'OID persistente dell'oggetto avvolto. In questo modo questi oggetti di essere mantenuta correttamente, anche se sono passati al ZODB in uno stato avvolto.
- Aggiunto test fallimento per http://dev.plone.org/plone/ticket/10318. Questo mostra un bordo caso qualora involucri AQ possono essere decapati utilizzando la combinazione specifica di cPickle, protocollo pickle uno e una classe Pickler personalizzata con un gancio di inst_persistent_id. Purtroppo questa è l'esatta combinazione usata da ZODB3.
I commenti non trovato