Tag: ANGULAR-DECORATOR
¿Cómo funcionan los decoradores de clase para métodos en clases? Aquí hay un ejemplo de lo que he hecho a través de experimentos: from functools import wraps class PrintLog(object): def __call__(self, func): @wraps(func) def wrapped(*args): print(‘Soy un registro’) return func(*args) return wrapped class foo(object): def __init__(self, rs: str) -> None: . . . Read more
¿Por qué el siguiente código imprime mensaje de error en lugar de ABC \n mensaje de error? class CustomException(Exception): """ABC""" def __init__(self, *args): super().__init__(*args) self.__str__ = self._wrapper(self.__str__) def _wrapper(self, f): def _inner(*args, **kwargs): return self.__doc__ + '\n' + f(*args, **kwargs) return _inner print(CustomException('mensaje de error'))
TL;DR: Quiero ejecutar alguna lógica (como actualizar una base de datos) dentro de una clase abstracta. Quizás haya otra forma de hacerlo, pero lo único que se me ocurre es usar un decorador. Tengo la siguiente clase abstracta: class MyAbstractClass(metaclass=abc.ABCMeta): @abc.abstractmethod def my_abstract_method(self, request): pass @staticmethod def decorator_func(self, func): def . . . Read more
Tengo el siguiente gestor de contexto y decorador para medir el tiempo de cualquier función o bloque de código: import time from contextlib import ContextDecorator class timer(ContextDecorator): def <strong>init</strong>(self, label: str): self.label = label <pre><code>def __enter__(self): self.start_time = time.perf_counter() return self def __exit__(self, *exc): net_time = time.perf_counter() – self.start_time print(f”{self.label} . . . Read more
clase CreateAssetDto{ assetName: string; tenant: Tenant; } export const InjectTenant = createParamDecorator( (data: string, ctx: ExecutionContext) => { const request = ctx.switchToHttp().getRequest(); let createAssetDto = new CreateAssetDto(); createAssetDto.tenant = new Tenant(“JAY”) return createAssetDto; } ); async create(@InjectTenant() createAssetDto: CreateAssetDto) { console.log(createAssetDto.tenant); } Hola, ¿cómo inyectar datos utilizando el parámetro de . . . Read more