7.3 给函数�数增加元信�¶

问题¶

你写好了一个函数,然�想为这个函数的�数增加一些�外的信�,这样的�其他使用者就能清楚的知�这个函数应该怎么使用。

解决方案¶

使用函数�数注解是一个很好的办法,它能�示程�员应该怎样正确使用这个函数。 例如,下�有一个被注解了的函数:

def add(x:int, y:int) -> int:
    return x + y

python解释器�会对这些注解添加任何的语义。它们�会被类型检查,�行时跟没有加注解之�的效果也没有任何差�。 然而,对于那些阅读��的人�讲就很有帮助啦。第三方工具和框架�能会对这些注解添加语义。�时它们也会出现在文档中。

>>> help(add)
Help on function add in module __main__:
add(x: int, y: int) -> int
>>>

尽管你�以使用任�类型的对象给函数添加注解(例如数字,字符串,对象实例等等),�过通常�讲使用类或者字符串会比较好点。

讨论¶

函数注解�存储在函数的 __annotations__ 属性中。例如:

>>> add.__annotations__
{'y': <class 'int'>, 'return': <class 'int'>, 'x': <class 'int'>}

尽管注解的使用方法�能有很多�,但是它们的主�用途还是文档。 因为python并没有类型声明,通常�讲仅仅通过阅读��很难知�应该传递什么样的�数给这个函数。 这时候使用注解就能给程�员更多的�示,让他们�以正确的使用函数。

�考9.20�节的一个更加高级的例�,演示了如何利用注解�实现多分派(比如�载函数)。