0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python系列学习笔记之函数注解

jf_78858299 来源:人工智能知识分享 作者:人工智能知识分享 2023-02-21 10:34 次阅读

Python 3.0中,可以给函数对象附加注解信息。这些信息会附加到函数对象的__annotations__属性。

如下是一个不带注解的函数,它编写为带有3个参数并且返回一个结果:

def func(a,b,c):

... return a + b + c

...

func(1,2,3)

6

从语法上讲,函数注解编写在def头部行。对于参数,它们出现在紧随参数名之后的冒号之后;对于返回值,它们编写于紧跟在参数列表之后的一个->之后。例如,这段代码,注解了前面函数的3个参数及其返回值:

def func(a: 'spam',b: (1,10),c: float) -> int:

... return a + b + c

...

func(1,2,3)

6

Python将注解信息收集到字典中并且将它们附加给函数对象自身。参数名变成键,如果编写了返回值注解的话,它存储在键“return”下:

func.annotations

{'a': 'spam','c': ,'b': (1,10),'return': }

下面的例子只是注解了3个参数中的两个:

def func(a: 'spam',b,c: 99):

... return a + b + c

...

func(1,2,3)

6

func.annotations

{'a': 'spam','c': 99}

for arg in func. annotations :

... print(arg,'=>',func. annotations [arg])

...

a => spam

c => 99

如果编写了注解的话,仍然可以对参数使用默认值——注解出现在默认值之前。例如,下面的a: 'spam' = 4意味着参数a的默认值是4,并且用字符串'spam'注解它:

def func(a: 'spam' = 4,b: (1,10) = 5,c: float = 6) -> int:

... return a + b + c

...

func(1,2,3)

6

func() # 4 + 5 + 6 (all defaults)

15

func(1,c=10) # 1 + 5 + 10 (keywords work normally)

16

func.annotations

{'a': 'spam','c': ,'b': (1,10),'return': }

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4303

    浏览量

    62411
  • python
    +关注

    关注

    55

    文章

    4778

    浏览量

    84439
  • 注解
    +关注

    关注

    0

    文章

    18

    浏览量

    2668
收藏 人收藏

    评论

    相关推荐

    pytest学习笔记有哪些?

    fixure为什么不能调用低级别的fixure?pytest.mark.usefixure注解在类上面和写在方法入参里面有什么差别?pytest学习笔记汇总
    发表于 11-04 09:23

    STC15F2K60S2系列学习板电路图资料分享

    本次分享的是来自STC官网的STC15F2K60S2系列学习板-32KSRAM电路图。STC15F2K60S2单片机是一种增强型的8051单片机,是新型的FLASH单片机,与传统的8051系列单片机
    发表于 11-09 14:30

    Python学习网络编程Socket分享

    Python学习网络编程Socket
    发表于 07-02 08:18

    Python机器学习入门pandas的使用提示

    系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门pandas的使用提示
    发表于 08-13 07:36

    新唐科技宣布推出NuMicro M051系列学习板Nu-LB

      新唐科技宣布推出NuMicro M051 系列学习板 Nu-LB-M051。该学习版特别针对想要入门或评估新唐NuMicro M051 系列 MCU所规划。Nu-LB-M051为功能完整且便利型的入门型
    发表于 11-26 08:53 1519次阅读

    学习Python的发展方向

    编程方向; Python 基础学习 Python 语句 学习python 的运算符和表达式,声明语句,基本的输入输出语句、注释语句、流程控制
    的头像 发表于 04-02 15:43 7491次阅读

    python函数概念理解

    函数是可以实现一些特定功能的小方法或是小程序。在Python中有很多内建函数,当然随着学习的深入,我们可以学会创建对自己有用的函数
    的头像 发表于 01-18 17:37 2289次阅读

    python机器学习笔记资料免费下载

    本文档的主要内容详细介绍的是python机器学习笔记资料免费python机器学习笔记资料免费下载
    发表于 03-01 10:09 39次下载

    OpenStackCinder学习笔记

    OpenStackCinder学习笔记(开关电源技术教程ppt)-该文档为OpenStackCinder学习
    发表于 09-23 12:40 5次下载
    OpenStack<b class='flag-5'>之</b>Cinder<b class='flag-5'>学习</b><b class='flag-5'>笔记</b>

    3、【STM32F0系列学习—中断和事件

    【STM32F0系列学习—中断和事件1、什么是“中断”2、中断优先级3、中断嵌套4、嵌套向量中断控制器 (NVIC)5、中断与事件的区别和主要特性6、外部中断(EXTI)配置6.1【标准库
    发表于 11-26 12:21 9次下载
    3、【STM32F0<b class='flag-5'>系列学习</b>】<b class='flag-5'>之</b>—中断和事件

    ROS 学习笔记五:对Arduino环境刮目相看

    ROS 学习笔记五:对Arduino环境刮目相看
    发表于 11-29 09:51 2次下载
    ROS <b class='flag-5'>学习</b><b class='flag-5'>笔记</b><b class='flag-5'>之</b>五:对Arduino环境刮目相看

    2、【STM32F0系列学习—通用输入输出端口(GPIO)

    【STM32F0系列学习—通用输入输出端口GPIO1、GPIO端口配置说明1、GPIO端口配置说明
    发表于 11-29 16:51 66次下载
    2、【STM32F0<b class='flag-5'>系列学习</b>】<b class='flag-5'>之</b>—通用输入输出端口(GPIO)

    HT32F52352学习笔记

    HT32F52352学习笔记
    发表于 12-02 20:36 6次下载
    HT32F52352<b class='flag-5'>学习</b><b class='flag-5'>笔记</b><b class='flag-5'>之</b>六

    STC8系列学习笔记(一) 数码管的驱动设计

    STC8系列学习笔记(一) 数码管的驱动设计暑假从实验室借了一块stc8的开发板,简单的记录下自己学习的过程。我不知道咋分类的,因为我是物联网工程专业的,就分类到物联网把。刚开始首先
    发表于 12-22 18:48 14次下载
    STC8<b class='flag-5'>系列学习</b><b class='flag-5'>笔记</b>(一)  数码管的驱动设计

    Python入门什么是函数

    Python函数比我们想象的更为灵活。由于Python函数是对象,所以函数对象可以赋值给其他的名字、传递给其他
    的头像 发表于 02-21 14:24 481次阅读