Twee stijlen van de overname worden ondersteund: expliciete en impliciete acquisitie.
Impliciete overname wordt zo genoemd omdat het zoekt naar attributen uit de omgeving automatisch wanneer een attribuut niet direct kan worden verkregen van een object of via erfenis.
Een attribuut kan impliciet worden verworven als zijn naam niet beginnen met een underscore.
Impliciete overname te ondersteunen, moet je klas erven van de mix-in de klas Acquisition.Implicit.
Als expliciete verwerving wordt gebruikt, worden kenmerken niet automatisch verkregen uit het milieu. In plaats daarvan moet de methode aq_acquire gebruikt.
Acquisitie is geschreven in Python.
Acquisitie een krachtige manier om dynamische informatie tussen objecten delen. Zope 2 maakt gebruik van de verwerving van een aantal van de belangrijkste functies, waaronder beveiliging, publiceren object, en DTML variabele lookup.
Acquisition ook een elegante oplossing voor het probleem van kringverwijzingen vele soorten problemen. Terwijl de overname is krachtig, moet je zorgen bij het gebruik van acquisitie in uw toepassingen.
De details zijn complex te krijgen, met name met de verschillen tussen het verwerven van de context en het verwerven van insluiting
Wat is nieuw in deze release:.
- Maak de pure-Python Acquirer objecten gezamenlijk gebruik maken van de superklasse __getattribute__ methode, zoals de C implementatie.
- De zuivere-Python impliciete overname wrapper maakt verpakt objecten object .__ getAttribute __ (zelf, de naam) te gebruiken. Dit verschilt van de C implementatie, maar is belangrijk voor verenigbaarheid met de zuivere Python versies van bibliotheken als persistent.
Wat is nieuw in versie 4.2.1:
- Doorgaan readme.rst testen wanneer tests worden buiten lopen een bron kassa.
Wat is nieuw in versie 4.2:
- Doorgaan readme.rst testen wanneer de tests buiten een bron worden gerund kassa.
Wat is nieuw in versie 4.1:
- Doorgaan readme.rst testen wanneer de tests buiten een bron worden gerund kassa.
Wat is nieuw in versie 4.0a1:
- Raise RuntimeError: Recursie gedetecteerd in overname wrapper als een object met een __parent__ pointer wijst naar een wrapper die op zijn beurt verwijst naar het oorspronkelijke object.
- Prevent wrappers worden gemaakt, terwijl de toegang tot __parent__ op types afgeleid van expliciete of impliciete basisklassen.
Wat is nieuw in versie 2.13.8:
- Vast een segfault op 64bit platforms bij het verstrekken van de expliciete argument om de aq_acquire methode van een overname wrapper.
Wat is nieuw in versie 2.13.7:
- Fixed bug: Wanneer een object niet uit te voeren __unicode__ , roepen unicode (verpakt) riep __str__ een ongeopende zelf.
Wat is nieuw in versie 2.13.6:.
- Voeg aq_explicit aan IAcquisitionWrapper
- Fixed bug: unicode (verpakt) werd niet bellen van een __unicode__ methode op verpakt objecten .
Wat is nieuw in versie 2.13.5:
- Vast unit tests die niet op 64bit Python in Windows machines.
Wat is nieuw in versie 2.13.4:.
- Vast typo in Acquisition.h
Wat is nieuw in versie 2.13.3:
- Gebruik de doctest module uit de standaard bibliotheek en geen langer afhankelijk van zope.testing.
Wat is nieuw in versie 2.13.2:
- Geef zowel wrapper klassen een __getnewargs__ methode, die veroorzaakt de ZODB optimalisatie te mislukken en maak aanhoudende referenties met behulp van de _p_oid alleen. Dit gebeurt op de aanhoudende oid van de verpakte object. Dit laat deze objecten correct worden bleef, hoewel ze worden doorgegeven aan de ZODB in een verpakte toestand.
- Toegevoegde falende tests voor http://dev.plone.org/plone/ticket/10318. Dit toont een edge-geval waar AQ wrappers kan worden gebeitst met behulp van de specifieke combinatie van cPickle, augurk protocol een en een aangepaste Pickler klasse met een inst_persistent_id haak. Helaas is dit is de exacte combinatie gebruikt door ZODB3.
Reacties niet gevonden