Executando verificação de segurança...
4

Metaprogramação em python

metaprogramação

Este conceito consiste na manipulação do codigo usando o próprio código em tempo de execução. metaprogramação resolve alguns problemas e pode te tornar um programador mais produtivo. Para mais detalhes acesse wikipédia.

Estive trabalhando em um client da Brasil API feito em python onde acabei utilizando este conceito para a criação dinâmica das rotas. Link do meu projeto: brasilapy

python é uma linguagem muito flexível neste ponto pois possue dunder methods que implementa uma melhor manipulação dos objectos e classes de forma simples e sem o uso de dependências.

Exemplo:

from typing import Any

class AdicionadorDeSufixo(object):
    def __init__(self, sufixo: str) -> None:
        self.sufixo = sufixo
    
    def __getattr__(self, name: str) -> Any:
        return lambda: self.pronunciar(name)
            
     
    def pronunciar(self, palavra: str) -> None:
        terminacoes = ['ar','er','ir']

        if any(palavra.endswith(sufixo) for sufixo in terminacoes):
            palavra = palavra[0:-2]
        
        return palavra + self.sufixo

sufixador = AdicionadorDeSufixo('ada')
palavra1 = sufixador.piar()
palavra2 = sufixador.pronunciar('piar')

print(palavra1, palavra2) # piada piada 

Note que ambas as saidas tiveram o mesmo valor. Desta forma posso gerar valores baseado no nome do metodo chamado e criar features dinâmicas.

Carregando publicação patrocinada...