python里的def 方法中->代表什么意思?

python里的def 方法中->代表什么意思?功能注释函数注释是关于用户定义函数使用的类型的完全可选元数据信息(请参阅PEP3107和 PEP484了解更多信息)。注释__annotations__ 作为字典存储在函数

大家好,又见面了,我是你们的朋友全栈君。

功能注释

函数注释是关于用户定义函数使用的类型的完全可选元数据信息(请参阅PEP 3107和 PEP 484了解更多信息)。

注释__annotations__ 作为字典存储在函数属性中,对函数的任何其他部分都没有影响。参数注释由参数名称后面的冒号定义,后跟一个表达式,用于评估注释的值。返回注释由->参数列表和冒号表示def语句结尾之间的文字,后跟表达式定义以下示例具有位置参数,关键字参数和注释的返回值:

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'>, 'eggs': <class 'str'>, 'return': <class 'str'>}
# Arguments: spam eggs

 

我们可以发现

-> 主要是标记返回值数据类型;

拿上面例子来说,在函数f中,标记参数hamstr类型eggsstr类型;return的值为->后面标记的类型str

这样写的话,我们光看代码就可以知道该方法返回什么类型的数据,而不需要去调试。

 

但是如果指定不一致呢,比如说,我们标记f的返回结果为int,但是实际结果却是str。

此时,开发工具里面应该会报错,提示返回值不对,但是程序照样正常运行,不会抛异常。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156080.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python—-简史

    python—-简史然软件产业的历史相对于人类历史只是白驹过隙,但世界上却存在非常多的编程语言,「Python」 就是其中之一。Python语言算得上一门“古老”的编程语言,Python流行这么久,必然有它

    2022年7月5日
    25
  • busybox 安装mysql_安装busybox「建议收藏」

    busybox 安装mysql_安装busybox「建议收藏」安装busybox按以下步骤即可:1.root手机2.查看手机支持的cpu架构:cat/system/build.prop|grepabi我手机查出来的结果如下所示:ro.product.cpu.abi=armeabi-v7aro.product.cpu.abi2=armeabi3.下载适合你手机的Busybox,可以直接下载binary文件,地址如下:https://busybox.ne…

    2022年7月25日
    12
  • Spring Aop、拦截器、过滤器的区别[通俗易懂]

    Spring Aop、拦截器、过滤器的区别[通俗易懂]Spring Aop、拦截器、过滤器的区别

    2022年4月22日
    93
  • java 静态变量 存储_java中,类的静态变量如果是对象,该对象将存储在内存的哪个区域?…

    java 静态变量 存储_java中,类的静态变量如果是对象,该对象将存储在内存的哪个区域?…静态变量所引用的实例位于Java堆或运行时常量池。Java字节码与Native机器码不同,字节码是运行在JVM这一平台上的,字节码在被解释的过程中,具体的执行方式因JVM的不同实现而不同,但是对于JVM来说,它的各种不同实现都必须要遵循Java虚拟机规范。JVM的运行时数据区包含以下部分:1、PC寄存器每一条Java虚拟机线程都有自己的PC寄存器,如果正在被线程执行的当前方法不是native的,那…

    2022年4月28日
    47
  • 学习使用口令激活成功教程工具:hashcat、LC、SamInside

    学习使用口令激活成功教程工具:hashcat、LC、SamInside在学习使用口令激活成功教程工具之前,我们要先创建一个用户账号,原理是利用其哈希值进行激活成功教程。很关键的一点是,要在虚拟机里面创建用户!!!很关键的一点是,要在虚拟机里面创建用户!!!很关键的一点是,要在虚拟机里面创建用户!!!重要的事情一定要说三遍。在宿主机(我是win10系统)创建用户获取的hash值是假的,根本无法用于激活成功教程。我个人猜测,是由于宿主机存在某种保护机制,使得不让获取到真正的hash。因…

    2022年7月24日
    8
  • Java中&0xFF是什么意思?计算机的原码、补码和反码

    Java中&0xFF是什么意思?计算机的原码、补码和反码公司项目中有向MCU发数据的代码,新来的同事对其中的&0xFF很不理解,我解释了很多遍他还是蒙圈状态,可能我的表达能力太差,想想还是用一篇博客来详细说明吧,代码如下:更新:07月10日,有个小伙伴对这种操作各种不习惯,怎么解释他都想不明白,所以增加了代码注释为什么要加上“&0xFF”?拆分理解下0xFF是16进制的表达方式,F是15;十进制为:255,二进制为:11111111

    2022年6月19日
    848

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号