sobrecarga

Sobrevoamento simples de métodos e funções através de um decorador @OVEVERLOAD
Baixe Agora

sobrecarga Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • BSD License
  • Nome do editor:
  • Richard Jones
  • Site do editor:
  • http://code.google.com/p/bitstring/

sobrecarga Tag


sobrecarga Descrição

Sobrevoamento simples de métodos e funções através de um decorador @overload A sobrecarga é uma sobrecarga simples de métodos e funções através de um decorador @overload. Este módulo permite fornecer várias interfaces para funções, métodos, classmethods, estatíticos ou classes. Veja abaixo algumas notas sobre sobrecargas, você é uma pessoa estranha, a implementação apropriada é escolhida com base no padrão de argumentos de chamada. Por exemplo: >>> Classe A (objeto): ... @OVEROFLOAD (Auto , a): ... retorne 'A' ... @ Method.add ... DEF Método (auto, A, B): ... Retornar 'A, B' ... >>> a = A ( ) >>> a.method (1) 'a' >>> a.method (1, 2) 'a, b'A sobrecarga fixa, palavra-chave, variável (* args) e palavra-chave arbitrária (** palavras-chave) argumentos .Ita também lida com anotações se essas anotações são tipos: >>> @Overload ... Def Func (A: int): ... Retornar 'int' ... >>> @ func.add ... def func (def ... A: str): ... retorno 'str' ... >>> func (1) 'int' >>> func ('s') 'str' >>> func (1.0) rastreback (chamada mais recente por último ): Arquivo "", linha 1, no arquivo "sobrecarga.py", linha 94, em F Raise TypeError ('Argumento de chamada inválido') TypeError: Argumento de chamada inválido Este recurso (e atualmente o módulo em geral) requer Python 3. O DOCSTRING e nome (ou seja, documentação) do resultado resultante corresponderá A das primeiras classes sobrecarregadas de carga sobrecarregadas permitem selecionar um tipo de classe com base nos argumentos de construção de cada método alternativo do tipo __new__. Há uma captura embora: o método __new__ deve invocar explicitamente o método da classe Base __new__, em vez de usar super () como de costume. Isso ocorre porque, depois de ser carregado, a classe é uma função, e super () não gosta de passar funções. Então, ao invés de: @OverloadClass A (objeto): def __new __ (CLS): # Isso fará falhar porque "A" é uma função agora retornar super (A, CLS) .__ Novo __ (CLS) Você deve: @OverloLoadClass a (objeto) : Def __new __ (CLS): # deve referência explicitamente o objeto de retorno de classe base .__ Novo __ (CLS) Eu vou deixá-lo para o leitor justificar seu uso de classes @overing. Requisitos: · Pitão O que há de novo nesta versão: · Esta versão alterou o texto da chamada inválida TypeError. Impressões de depuração removidas.


sobrecarga Software Relacionado