zoukankan      html  css  js  c++  java
  • python的 Function Annotations学习笔记

     Function Annotations解释为:函数注释是关于用户定义的函数,使用的类型的完全可选的元数据信息,其实就是对函数的参数以及返回值的注释。

    函数注释规则:

    1.注释以字典的形式存储在函数的__annotations__
    2.参数注释由参数名称后面跟冒号(:)
    3.返回用->符号加表达式跟冒号结束

    例1:

    >>> def f(ham: str, eggs: str = 'eggs') -> str:
    ... print("Annotations:", f.__annotations__)
    ... print("Arguments:", ham, eggs)
    ... return ham + ' and ' + eggs
    >>> f('spam')
    Annotations: {'ham': <class 'str'>, 'return': <class 'str'>, 'eggs': <class 'str'>}
    Arguments: spam eggs
    'spam and eggs'

    上面例子中,在定义f()函数时,ham为位置参数(positional argument),eggs为关键字参数(keyword argument),注释ham为strl类型,eggs为str类型。返回值以‘->’标记,例子表明返回值为str,注释可以随便写!!

    调用注释用:f.__annotations__

    >>> def f(ham:u'ham的注释',eggs:float=12)->'返回值注释':
        print(ham,eggs)
        print(f.__annotations__)
    
        
    >>> f(1)
    1 12
    {'ham': 'ham的注释', 'eggs': <class 'float'>, 'return': '返回值注释'}

    上面的例子表示注释可以随便写,仅仅是一个注释。但是一般方便程序阅读,注释用来解释函数

    >>> f('your ham',14)
    your ham 14
    {'ham': 'ham的注释', 'eggs': <class 'float'>, 'return': '返回值注释'}

    接上面函数,ham=“your ham”,eggs的值变为14,函数运行变化的参数,这表示函数体的参数可以重新赋值

    def foo(a: 'x', b: 5 + 6, c: list) -> max(2, 9):
        ...
    would result in a func_annotation mapping of
    
    {'a': 'x',
     'b': 11,
     'c': list,
     'return': 9}
  • 相关阅读:
    杂文: 日剧《轮到你了》第7集中的组合数学问题
    CF 板刷总结
    【题解】P2324 [SCOI2005]骑士精神
    【模板】 $ ext{K}$ 短路
    P4554 小明的游戏
    [题解]P1856 [USACO5.5]矩形周长Picture
    洛谷P2243 电路维修
    【题解】洛谷P3660 [USACO17FEB]Why Did the Cow Cross the Road III
    【题解】P1119 灾后重建
    集福卡活动
  • 原文地址:https://www.cnblogs.com/he12345/p/8391496.html
Copyright © 2011-2022 走看看