Python中_name: "Test" = None这类初始化方式叫什么?
问题解答
你遇到的是Python 3.6及以上版本支持的变量注解语法,相关说明如下:
- 语法结构拆分:
变量名 : 注解内容 = 初始值
你给出的代码里,"Test"是写在注解位置的元数据,None才是变量的实际初始值,所以你直接访问_name得到None是符合预期的,注解本身永远不会改变变量的实际取值。 - 常规场景下,注解位置通常用来写变量的预期类型,比如
_name: str = None表示该变量预期存储字符串类型的值。但Python的类型提示体系本身没有限制注解必须是类型,你可以在注解位置写任意合法的Python表达式,包括字符串、数字、自定义对象等。 - 这种用字符串做注解的写法一般是项目自定义的特殊用法,常见用途包括:
- 标注变量的业务含义、字段说明,比普通
#注释更规范统一 - 为第三方框架、代码工具提供额外配置,比如部分序列化、ORM框架会用该位置标注字段的映射规则、校验逻辑
- 用作代码的标记位,供运行时代码逻辑读取使用
- 标注变量的业务含义、字段说明,比普通
- 注解内容会被Python保留到运行时,你可以通过特殊属性
__annotations__读取到所有注解的键值对,比如在当前模块下执行print(__annotations__),就能看到{'_name': 'Test'}的对应关系。
内容的提问来源于stack exchange,提问作者rushikesh
相关产品推荐
相关产品推荐

