Papéis

desenvolvimento baseado em função
Baixe Agora

Papéis Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • BSD License
  • Preço:
  • FREE
  • Nome do editor:
  • Arjan Molenaar
  • Site do editor:
  • http://gaphor.devjavu.com/

Papéis Tag


Papéis Descrição

Desenvolvimento baseado em funções Os papéis são uma biblioteca Python para o desenvolvimento de função baseado em função. Implementaçãopythônica do padrão DCI (Interação de Contexto de Dados) (http://www.artima.com/articles/dci_vision.html).A grande diferença com mixins é que esta função é Aplicado apenas à instância do assunto, não à classe de assunto (ALAS, uma nova classe é construída) .Roles podem ser atribuídos e revogados. Várias funções podem ser aplicadas a uma instância. A revogação pode acontecer em qualquer ordem específica.Using Rolesas Um exemplo básico, considere uma classe de domínio: >>> pessoa de classe (objeto): ... def __init __ (auto, nome): ... auto.name = nome >>> Pessoa = Pessoa ("John") A instância deve participar de uma colaboração na qual cumpre uma função específica: >>> de funções Import RoleType >>> Carpinteiro de classe (objeto): ... __metaclass__ = Roletype ... Def Chop (auto): ... Retornar "Chop, Chop" Atribua o papel à pessoa: >>> carpinteiro (pessoa) # Doctest: + elipses >>> pessoa # Doutest: + Elipsis A pessoa ainda é uma pessoa: >>> isinstance (pessoa, pessoa) verdade ... e pode fazer coisas carpinteiro: >>> pessoa.chop () ` Chop'See Roles.py para mais exemplos.Factoriesin A maioria dos casos As instâncias exigirão implementações específicas de um determinado papel. Isso pode ser feito decorando as implementações de função específicas com o decorador Atribuo (). >>> de funções importação >>> @assignto (pessoa) ... motociclista (objeto): ... __metaclass__ = Roletype ... Def Bike (auto): ... retorne 'ciclo, ciclo' >>> motociclista (pessoa) # doctest: + elipsis Atribuir a uma instância de classe diferente não funciona : >>> CLASS CAT (objeto): ... PASS >>> motociclista (gato ()) # Doctest: + elipsistraceback (mais recente chamada): ... NoroleException: Nenhum papel encontrado para Requisitos: · Pitão


Papéis Software Relacionado