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

如何在Python函数签名中引用类属性的类型?

如何在函数签名中引用类属性的类型

你想要的类似TypeScript中Person["name"]的语法,在Python的主流类型检查器(如Pyright、mypy)中已经支持,直接用索引访问的方式就能实现:

class Person:
    name: str 

    def __init__(self, name) -> None:
        self.name = name 

def greet(name: Person["name"]):
    return "Hello " + name

这种写法可以让类型检查器正确识别name参数的类型为Person类中name属性的类型,不会触发语法或类型检查错误。

再说说你尝试的两种方法:

  • 定义类型别名的方式是可行的,但如果后续需要修改Person.name的类型,必须同时修改别名,维护成本稍高。
  • reveal_type是类型检查器的调试工具,并非正式的类型注解语法,虽然能让检查器识别类型,但代码运行时会抛出NameError,不适合用于生产代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:15:33