python3新特性函数注释Function Annotations用法分析

本文分析了python3新特性函数注释Function Annotations用法。分享给大家供大家参考,具体如下:

Python 3.X新增加了一个特性(Feature),叫作函数注释 Function Annotations

它的用途虽然不是语法级别的硬性要求,但是顾名思义,它可做为函数额外的注释来用。

Python中普通的函数定义如下:

def func(a, b, c):
  return a + b + c
>>> func(1, 2, 3)
6

添加了函数注释的函数会变成如下形式:

def func(a: 'spam', b: (1, 10), c: float) -> int:
  return a + b + c
>>> func(1, 2, 3)
6

注释的一般规则是参数名后跟一个冒号(:),然后再跟一个expression,这个expression可以是任何形式。

返回值的形式是 -> int,annotation可被保存为函数的attributes。

查看所有的annotation,可通过如下语句:

>>> func.__annotations__
{'c': <class 'float'>, 'a': 'spam', 'b': (1, 10), 'return': <class 'int'>}

如果为函数增加了注释,可不可以继续使用默认参数呢?答案是肯定的。

>>> def func(a: 'spam' = 4, b: (1, 10) = 5, c: float = 6) -> int:
...  return a + b + c
...
>>> func(1, 2, 3)
6
>>> func()
15
>>> func(1, c=10)
16
>>> func.__annotations__
{'c': <class 'float'>, 'a': 'spam', 'b': (1, 10), 'return': <class 'int'>}

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python编码操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • Python中的多行注释文档编写风格汇总

    什么是docstring 在软件工程中,其实编码所占的部分是非常小的,大多是其它的事情,比如写文档.文档是沟通的工具. 在Python中,比较推崇在代码中写文档,代码即文档,比较方便,容易维护,直观,一致. 代码写完,文档也出来了.其实Markdown也差不多这种思想,文本写完,排版也完成了. 看看PEP 0257中对docstring的定义: A docstring is a string literal that occurs as the first statement in a modu

  • python 中文乱码问题深入分析

    在本文中,以'哈'来解释作示例解释所有的问题,"哈"的各种编码如下: 1. UNICODE (UTF8-16),C854: 2. UTF-8,E59388: 3. GBK,B9FE. 一.python中的str和unicode 一直以来,python中的中文编码就是一个极为头大的问题,经常抛出编码转换的异常,python中的str和unicode到底是一个什么东西呢? 在python中提到unicode,一般指的是unicode对象,例如'哈哈'的unicode对象为 u'\u54c8

  • Python实现多行注释的另类方法

    Python程序的注释感觉很不合群,对于习惯了使用/**/多行注释的人来说,到Python中只能使用#号进行单行注释很痛苦. 复制代码 代码如下: # 这里是单行注释 # a = 50 # b = 10 # c = 10 其实我们可以通过多行文本定义的格式实现多行注释: 复制代码 代码如下: """     # 这里是多行注释     a = 50     b = 10     c = 10 """ 这个方法感觉还不错,跟/**/多行注释用起来没

  • Python注释详解

    注释用于说明代码实现的功能.采用的算法.代码的编写者以及创建和修改的时间等信息. 注释是代码的一部分,注释起到了对代码补充说明的作用. Python注释 Python单行注释以#开头,单行注释可以作为单独的一行放在被注释的代码行之上,也可以放在语句或者表达式之后. #Give you a chance to let you know me print("Give you a chance to let you know me") say_what = "this is a d

  • Pyhton中单行和多行注释的使用方法及规范

    前言 注释可以起到一个备注的作用,团队合作的时候,个人编写的代码经常会被多人调用,为了让别人能更容易理解代码的通途,使用注释是非常有效的. Python  注释符 一.python单行注释符号(#) 井号(#)常被用作单行注释符号,在代码中使用#时,它右边的任何数据都会被忽略,当做是注释. print 1 #输出1 #号右边的内容在执行的时候是不会被输出的. 二.批量.多行注释符号 在python中也会有注释有很多行的时候,这种情况下就需要批量多行注释符了.多行注释是用三引号'''   '''包

  • Python入门教程 超详细1小时学会Python

    为什么使用Python    假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200. 思路:用shell编程.(Linux通常是bash而Windows是批处理脚本).例如,在Windows上用ping ip 的命令依次测试各个机器并得到控制台输出.由于ping通的时候控制台文本通常是"Reply from ... " 而不通的时候文本是"time out ... " ,所以,在结果中进行

  • Python文件去除注释的方法

    本文实例讲述了Python文件去除注释的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python # -*- coding: GBK -*- #writer:xmnathan #py文件去注释 import re import os import ConfigParser Python='CleanNote' def ReadIni(path,section,option):#文件路径,章节,关键词 #读取ini cf=ConfigParser.ConfigParser

  • 在Python的Django框架中为代码添加注释的方法

    就像HTML或者Python,Django模板语言同样提供代码注释. 注释使用 {# #} : {# This is a comment #} 注释的内容不会在模板渲染时输出. 用这种语法的注释不能跨越多行. 这个限制是为了提高模板解析的性能. 在下面这个模板中,输出结果和模板本身是 完全一样的(也就是说,注释标签并没有被解析为注释): This is a {# this is not a comment #} test. 如果要实现多行注释,可以使用`` {% comment %}`` 模板标

  • 使用rpclib进行Python网络编程时的注释问题

    rpclib 是一个非常好用的 python webservice 库,可以动态的生成 wsdl, 不过这个项目已经基本停止,并被一个新的项目取代 spyne,由于旧的项目 工作已经比较稳定,所以我没有贸然升级到 spyne. 我在 rpclib 编写 service 方法时,遇到一个奇怪的错误: 访问 wsdl (http://localhost:9898/?wsdl) 页面,返回 502 Bad Gateway. 在日志中看到如下错误信息: 复制代码 代码如下: ValueError: Al

  • python访问类中docstring注释的实现方法

    本文实例讲述了python访问类中docstring注释的实现方法.分享给大家供大家参考.具体分析如下: python的类注释是可以通过代码访问的,这样非常利于书写说明文档 class Foo: pass class Bar: """Representation of a Bar""" pass assert Foo.__doc__ == None assert Bar.__doc__ == "Representation of a B

随机推荐