Dois estilos de aquisição são suportados: a aquisição explícita e implícita.
Aquisição implícita é assim chamado porque ele procura por atributos do ambiente automaticamente sempre que um atributo não pode ser obtida directamente a partir de um objeto ou através de herança.
Um atributo pode ser implicitamente adquirido se o seu nome não começa com um sublinhado.
Para suportar a aquisição implícita, sua classe deve herdar da classe Acquisition.Implicit mix-in.
Quando é usada a aquisição explícita, atributos não são obtidos automaticamente a partir do ambiente. Em vez disso, o método aq_acquire deve ser usado.
Aquisição é escrito em Python.
Aquisição fornece uma maneira poderosa para compartilhar dinamicamente informações entre objetos. Zope 2 usa aquisição para uma série de suas principais características, incluindo a segurança, publicação de um objeto, e DTML lookup variável.
Aquisição também fornece uma solução elegante para o problema de referências circulares para muitas classes de problemas. Embora a aquisição é poderoso, você deve tomar cuidado ao usar aquisição em seus aplicativos.
Os detalhes podem ficar complexo, especialmente com as diferenças entre a aquisição de contexto e aquisição de contenção
O que é novo nesta versão:.
- Faça o puro-Python Acquirer objetos cooperativamente usar o método da superclasse __getattribute__, como a implementação C.
- O wrapper aquisição puro-Python implícita permite embrulhado objetos para usar objeto .__ __ getAttribute (self, name). Isso difere da implementação C, mas é importante para compatibilidade com as versões puro-Python de bibliotecas como persistente.
O que é novo na versão 4.2.1:
- Ir testes readme.rst quando testes são executados fora um check-out fonte.
O que é novo na versão 4.2:
- Ir testes readme.rst quando os testes são executados fora de um fonte checkout.
O que é novo na versão 4.1:
- Ir testes readme.rst quando os testes são executados fora de um fonte checkout.
O que é novo na versão 4.0a1:
- Aumentar RuntimeError: Recursão detectada no envoltório aquisição se um objeto com um ponteiro __parent__ aponta para um invólucro que por sua vez aponta para o objeto original.
- Impedir wrappers a ser criado ao acessar __parent__ sobre os tipos de derivados de aulas explícitas ou implícita de base.
O que é novo na versão 2.13.8:
- Corrigido um segfault em plataformas de 64 bits ao fornecer a explícita argumento para o método aq_acquire de um wrapper de Aquisição.
O que é novo na versão 2.13.7:
- Corrigido o erro: __unicode__ Quando um objeto não implementar , chamando unicode (envolvido) estava chamando __str__ com um auto desembrulhados.
O que é novo na versão 2.13.6:.
- Adicione aq_explicit para IAcquisitionWrapper
- Corrigido o erro: unicode (envolvido) não foi chamado um método __unicode__ em objetos embrulhados .
O que é novo na versão 2.13.5:
- testes unitários fixos que falharam em 64bit Python no Windows máquinas.
O que é novo na versão 2.13.4:.
- Corrigido o erro em Acquisition.h
O que é novo na versão 2.13.3:
- Use o módulo doctest da biblioteca padrão e nenhuma já não dependem zope.testing.
O que é novo na versão 2.13.2:
- Dar ambas as classes de wrapper um método __getnewargs__, o que provoca a otimização ZODB a falhar e criar referências persistentes usando o _p_oid sozinho. Este passa a ser o oid persistente do objeto envolvido. Isso permite que esses objetos a ser mantido corretamente, mesmo que eles são passados para o ZODB em um estado envolvido.
- Adicionado testes falhando para http://dev.plone.org/plone/ticket/10318. Isso mostra um caso borda onde wrappers AQ pode ser conservado usando a combinação específica de cPickle, pickle protocolo de um e uma classe Pickler personalizado com um gancho inst_persistent_id. Infelizmente, esta é a combinação exata usada por ZODB3.
Comentários não encontrado