You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django模型中正确使用Python类型提示的方式是什么?

哪种是Django模型中使用类型注解的正确方式?

正确答案是选项三,以下是对三个选项的分析:

  • 选项一:错误。Generic[_T]是用于定义泛型类的工具,不能用来标注函数参数的实例类型。这里函数需要接收User模型的实例,用Generic[_T]完全不符合类型注解的用途,且此处也无需用TypeVar定义泛型。

  • 选项二:错误。Type(User)表示的是User类本身的类型,而非User类的实例。函数内代码是操作实例的name属性并调用实例方法save(),如果传入User类而非实例,运行时会直接报错(类没有name属性,save()是实例方法)。

  • 选项三:正确。直接用User作为参数的类型注解,准确表明参数是User模型的实例,函数内对实例属性和方法的操作完全匹配该类型,符合Django模型实例的类型注解规范。

from app.models import User

def func(user: User):
    user.name = 'John'
    user.save()

内容的提问来源于stack exchange,提问作者scaryhamid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 15:36:08