Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

218
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!