es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Usar namedtuple en lugar de tuple con typing.optional.

¿Cómo puedo usar namedtuple con typing.optional en lugar de esta tupla?
Quiero llamar a la función en el formato de result_final(power=Stats(min=12, max=None))
Gracias.
He intentado con Stats = namedtuple('Stats', [Optional[int], Optional[int]])

from typing import Optional, Tuple
Stats = Tuple[Optional[int], Optional[int]]  # min, max

def result_final(power: Stats):
    min, max = power
    print("min:", min, "max:", max)
print(result_final(power=(12, None)))

# namedTuple para tener result_final(power=Stats(min=12, max=None))
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para usar namedtuple con typing.optional, puedes definir una subclase de typing.NamedTuple con campos opcionales utilizando typing.Optional. Aquí hay un ejemplo:

    from typing import NamedTuple, Optional
    
    class Stats(NamedTuple):
        min: Optional[int] = None
        max: Optional[int] = None
    
    def result_final(power: Stats):
        print("min:", power.min, "max:", power.max)
    
    print(result_final(power=Stats(min=12, max=None)))
    

    En este ejemplo, definimos una subclase Stats de NamedTuple con dos campos opcionales: min y max, ambos de tipo Optional[int]. Luego podemos llamar a la función result_final con Stats(min=12, max=None) para obtener el resultado deseado.

Comments are closed.