Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

220
Visualizações
Práctica recomendada para establecer la variable predeterminada para el campo pydantic en tiempo de ejecución

Tengo un modelo pydantic para solicitar como a continuación,

 from pydantic import BaseModel, Field from typing import List, ClassVar from fastapi import FastAPI app = FastAPI() class myRequestModel(BaseModel): items: List[str] = Field(..., example=['a','b']) n: int = Field(100, example=50, gt=0) @app.post("/test") def test_func(args: myRequestModel): dynamic_threshold = my_func(...) # let say dynamic_threshold is determined at runtime if args.n < dynamic_threshold: args.n = 100 # I want to assign args.n only when it is under dynamic_threshold

Cuando los usuarios no dan n , se establece automáticamente en 100, que es el valor predeterminado a través del atributo Field .

Si los usuarios dan n menos que dynamic_threshold , debe establecerse en el valor predeterminado.

Para lograr esto, traté de agregar _default_n usando typing.ClassVar . Vea abajo,

 class myRequestModel(BaseModel): _default_n: ClassVar[int] = 100 n: int = Field(_default_n, example=100, gt=0) ... class Config: underscore_attrs_are_private = True @app.post("/test") def test_func(args: myRequestModel): ... if args.n < dynamic_threshold: args.n = args._default_n <-- Here, I get a warning 'Access to a protected member _default_n of a class

Esto funciona, pero no creo que esta no sea la forma correcta de advertir.

¿Cuál es la forma adecuada de generar un valor predeterminado que se pueda usar en tiempo de ejecución?

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda