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中,标记参数ham为str类型,eggs为str类型;return的值为->后面标记的类型str。

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

 

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

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

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

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

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


相关推荐

  • 同居的童话(童话里王子和公主幸福的生活在一起)

    (一)从公交车上下来,一股热风扑面而来,身上立刻起了层鸡皮.空调车厢和外面燥热的阳光形成了巨大的反差,让我一阵哚唆.“靠,还真他妈热啊!”我站在车站上扯了扯T恤的领口,然后拎起那个装了自己全副家当的大箱子,艰难的走进了这个叫“浪琴屿”的“高尚小区”.对了,还是先介绍一下我自己吧.我姓邵,叫邵平,男,福建人,福州大学国际金融专业本科学历.老家在福州100多公里以南的一个小

    2022年4月17日
  • fsync

    fsync转载:https://www.jb51.net/article/101062.htm脏页:linux内核中的概念,因为硬盘的读写速度远赶不上内存的速度,系统就把读写比较频繁的数据事先放到内存中,以提高读写速度,这就叫高速缓存,linux是以页作为高速缓存的单位,当进程修改了高速缓存里的数据时,该页就被内核标记为脏页,内核将会在合适的时间把脏页的数据写到磁盘中去,以保持高速缓存中的数据和磁盘中的数…

    2022年5月31日
  • 卡方分布、方差分析

    卡方分布:首先我们先把现代数学中的数理统计中的卡方分布已经烂大街的定义先放下来,我先回到卡方检验的诞生的之地。在1900年,皮尔森发表了著名的关于卡方检验的文章,该文章被认为是现代统计学的基石之一。在该文章中,皮尔森研究了拟合优度检验:……(这里之所以加点的原因是因为,下面的话很不好理解,我们举一个实际一点的例子就容易理解了。)下面图片有个赌场的色子(注意阅读下面红色字体)…

    2022年4月8日
  • JAVA常见容器_JAVA比较容器

    JAVA常见容器_JAVA比较容器假设上面已经有了各个容器的继承关系,我们就顺着继承关系说一下各个接口或者类的特点吧。Iterable接口Iterable是一个超级接口,被Collection所继承。它只有一个方法:Iterator&amp;lt;T&amp;gt;iterator()//即返回一个迭代器迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被…

    2022年10月29日
  • Android 多个Activity bindService的使用及Service生命周期

    Android 多个Activity bindService的使用及Service生命周期原文:https://blog.csdn.net/iispring/article/details/48169339 Android中有两种主要方式使用Service,通过调用Context的startService方法或调用Context的bindService方法,本文只探讨纯bindService的使用,不涉及任何startService方法调用的情况。如果想了解startService…

    2022年5月7日
  • python调用webservice接口_webservice应用实例

    python调用webservice接口_webservice应用实例最近在搞基于python的webservice项目,今天为把环境给配好,折腾了不少时间,还是把配的过程记录下来,以后备用:首先你系统上要有python,这个不必说啦,我系统上用的是2.7+其次,要用python进行webservice开发,还需要一些库:lxml:命令行下sudoeasy_installlxml就能安装pytz:命令行下sudoeasy_installpytz就…

    2022年9月21日

发表回复

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

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