【问题标题】:Is there a standard way to do interface annotations in python?有没有标准的方法在 python 中做接口注释?
【发布时间】:2017-06-16 18:53:24
【问题描述】:

在 Python 中有没有办法注释一个参数应该满足的接口? IE,如果你期望一个容器支持push和pop和empty作为第一个参数,注释这个?

【问题讨论】:

  • 你问是否有文档字符串约定?这些定义在PEP 257
  • @CoryKramer 我过去在 python 中处理过一些接口被部分填充然后你得到垃圾的东西,我想知道类型注释或类似的东西是否在这里允许安全。来自函数式世界,期望程序员在他的脑海中使用类型系统似乎是不合理的。

标签: python


【解决方案1】:

Python 中的函数可以有签名,这是你应该看的。在 Python3 中,这是语言的一部分:

def greeting(name: str) -> str:
    return 'Hello, {}'.format(name)

在 python2 中你可以使用# type: (str) -> str

除了内置的,你自己的类型(有限制)可以用于这个注解。

我使用这个和mypy 包来检查我的ruamel.yaml 库,通过将Any 声明(根本没有限制,因此没有限制)替换为更严格的类型来慢慢增加实用性。

【讨论】:

    猜你喜欢
    • 2013-12-30
    • 2021-11-06
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    相关资源
    最近更新 更多