栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

实例变量Python的类型提示约定

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

实例变量Python的类型提示约定

__init__
在大多数情况下,我建议使用第一个版本,在第一个版本中,将类型分配给方法的参数。

该特定方法的冗余最少,同时仍允许类型检查器验证您

__init__
是否在代码的其他位置正确调用了该方法。

我建议您使用第二个或第三个版本,

__init__
当您的
__init__
方法变得足够复杂到可以应用以下一项或多项内容时,您可以在其中显式注释字段(内部或外部):

  1. 您的字段确切开始时不再那么简单
  2. 参数和字段之间不再存在一对一的映射
  3. 您具有复杂的初始化逻辑,这些逻辑使您难以分配字段。

但是,我不清楚是首选第二版还是第三版-
我个人更喜欢第三版,因为它在概念上更简洁,并且似乎没有将实例属性与类属性混合使用,但是我不能否认第二个版本看起来更干净。

我在“键入”问题通道上进行了询问,并得到了Guido的以下回复(Gudo是您不知道的人,他使用Python,目前正在研究mypy并键入相关内容):

无论哪种方式,都有强烈的意见。我确实确实更喜欢将属性注释放在类主体中,而不是在整个

__init__
方法和其他方法中使用它们。我还认为,使用PEP
526,这将是未来(还包括基于类的NamedTuple声明以及https://github.com/ericvsmith/dataclasses之类的东西)。

(引用链接)

因此,似乎推荐使用第二个版本而不是第三个版本,并且在将来的某个时候,以这种方式定义类将更加深入地集成到Python语言本身中!

编辑: PEP
557,数据类是最近接受(?),似乎是在赛道上被包括在Python 3.7。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/653241.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号