withref.usa a instrução com simplificar deserredas complexas - um pouco como em Pascal ou Javascript | |
Baixe Agora |
withref. Classificação e resumo
Propaganda
- Licença:
- Other/Proprietary Li...
- Preço:
- FREE
- Nome do editor:
- Jonathan Eunice
- Site do editor:
- http://bitbucket.org/jeunice/
withref. Tag
withref. Descrição
O withref é um módulo Python que faz com que o Python seja com declaração capaz de simplificar as desreferências complexas. Isto é o que inicialmente, pensei ingênuo que a declaração era, semelhante ao com a declaração de Pascal meio lembrado. O uso típico de Python é uma proteção mais complexa sobre os pontos de entrada e saída para usar um objeto. Veja e. este artigo de effbot. Mas Withref torna isso mais simples "apenas me dar o objeto dereferenciado, por favor" use o caso de trabalho também. Usage de adef Import Ref do EasyDict Import EasyDict usado apenas para fins de demonstração. Maneira conveniente de # Faça entradas de dict acessíveis como propriedades deferenciáveis. a = easydict ({'b': {'c': {'c1': 1}, 'D': 44.1}}) com Ref (ABC) como C: C.C1 = 99 Imprimir um A_IDeal = EasyDict ({ 'B': {'c': {'c1': 99}, 'D': 44.1}}) Assert A == A_IDeal funciona com referências de estilo de matriz também, claro :: com ref (a ) como cc: c = 99 afirmam A == A_IDeal, mas cuidado super-dereferencing! Enquanto isso funciona corretamente :: com Ref (ABCC1) como C1: Imprimir C1 Assert C1 == 99This não :: com Ref (ABCC1) como C1: C1 = 12345 Assert C1 == 12345 Assert ABCC1 == 99 # Com Pascal Heartunlike pesado, a Ref não é embutida na linguagem apropriada. E ao contrário do Perl, o Python é menos ansioso para fornecer lvalues para cada menção de uma variável ou valor. Como resultado, `` `Ref`` pode fornecer o valor * do` do `` C1` C1`, mas não o 'lvalue * lvalue *. Como `` `` `ref`` Remove n- 1 camadas da estrutura anexada para valores, mas apenas N-2 para atribuição. Ainda, em estruturas complexas de várias camadas, esta pode ser uma boa simplificação :: com ref (app.config.server.wsgi) como WSGI: Wsgi.logger = some_logger wsgi.debug_level = 4 wsgi.port = 8080 sem dúvida beats :: app.config.server.wsgi.logger = some_logger app.config.server.wsgi.debug_level = 4 app.config.server.wsgi.port = 8080for simplicidade e clareza.Eu vejo um monte de código de configuração que constantemente repete o mesmo longo Derederências multi-nível. Esse estilo é repetitivo (anti-seco) e tende a blocos de código alinhados à esquerda, os quais impedem a compreensão do programa. Usando a instrução com a instrução é uma maneira interessante de simplificar e, ao mesmo tempo, adicione uma pequena estrutura visual extra. E enquanto a atribuição ("produção de lvalue") nem sempre é possível, ainda há alguns truques interessantes possíveis com a simples produção de valor: com Ref ("Esta é uma string" ) como T: Imprimir Talountativewhile Yadda.yadda.yadda Referenciamento é muito comum, pode-se alsouse uma atribuição de variável mais proximidade :: WSGI = app.config.server.wsgi WSGI .logger = ste_logger wsgi.debug_level = 4 wsgi.port = 8080 Isso não tem a estrutura mais recuada da abordagem withref, mas ainda é muito preferível ao que você costuma encontrar no campo.see Alsothhe Withhaacks Module, que inclui muitos outros hacks divertidos (lambdas multi-line, novas estruturas de loop, etc.) - mas também requer o módulo Byteplay que ativamente introspecção e mungas python bytecode ("perigo, vai robinson! Perigo!"), e não foi atualizado para trabalhar além do Python 2.6 Extensionas futuras .Possíveis "withhacks" mostra, usando intros Peça Poderíamos determinar o lvalue do objeto de chamada mesmo no caso de borda, onde é um nó de folha de sua estrutura anexa. Isso não exigiria nenhuma alteração de Bytecode, e deve ser compatível com versões modernas de Python (por exemplo, 2.7.x e 3.x). Se aquele truque pode ser feito simplesmente, portátil, rocha-sólido de forma confiável e de forma transparente para satisfazer aqueles que CÓDIGO Os módulos que tendem a precisar desse tipo de simplificação de desarreferenciamento - ou seja Os módulos complexos geralmente usados em configurações de produção, no qual são compreensivelmente detestam para introduzir quaisquer fontes possíveis de erro ou qualquer impedância de desempenho - essa é a chave open question.Installation Pip Install withref para usar o código de teste e demonstração, também :: Pip Install EasyDict (você pode precisar prefixar estes com "sudo" para autorizar a instalação.) Homepage do produto
withref. Software Relacionado
RAPTUS.Notification.
fornece uma maneira genérica de enviar notificações para usuários no Plone ...
106
xworkflows.
Uma biblioteca implementando fluxos de trabalho (ou máquinas de estado) para projetos de Python ...
80