博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 函数参数有冒号 声明后有-> 箭头
阅读量:5113 次
发布时间:2019-06-13

本文共 852 字,大约阅读时间需要 2 分钟。

 

在python3.7 环境下 函数声明时能在参数后加冒号,如图:

1 def f(ham: str, eggs: str = 'eggs') -> str :2     print("Annotations:", f.__annotations__)3     print("Arguments:", ham, eggs)4     return ham + ' and ' + eggs5 6 print(f("test","abc"))

可能有疑问,python不是动态类型语言 ,难不成还能指定参数类型?

来看一下打印结果:

但同时也确实能传其他类型的值 如:f("test",123)

那结果如何呢? 如下:

当然会报错了啊,返回值是一个字符串,int型不能参与字符串拼接,那参数后写一个:str 和 ->str是什么意思呢?

在官方文档指明.__annotations__是函数的参数注释和返回值注释:

所以打印出Annotations: {'ham': <class 'str'>, 'eggs': <class 'str'>, 'return': <class 'str'>}

其实并没有指定类型 只是写函数的人提醒用函数的人最好传什么类型的参数,因为最后需要两个参数进行字符串拼接;

当然,也可以直接写字符串提醒:

def f(ham: "传一个字符串", eggs: str = 'eggs') -> str :    print("Annotations:", f.__annotations__)    print("Arguments:", ham, eggs)    return ham + ' and ' + eggsprint(f("test",123))

 而声明函数后那个箭头:"->" 是返回值的注释,-> str 意思即是提醒函数使用者返回值会是一个str型。

转载于:https://www.cnblogs.com/Stitchez/p/10006519.html

你可能感兴趣的文章
《转》Python学习(18)-python函数(二)
查看>>
awk应用场景之过滤举例
查看>>
编译与链接的简单过程小结
查看>>
119 - Greedy Gift Givers
查看>>
[置顶] 可选参数及命名实参在一起
查看>>
Integer Inquiry_hdu_1047(大数).java
查看>>
uva 387 A Puzzling Problem (回溯)
查看>>
K均值算法实现
查看>>
js时间戳与日期格式之间相互转换
查看>>
python全栈之路系列之赋值与运算符
查看>>
剑指offer--4.重建二叉树
查看>>
this指针基础介绍
查看>>
如何把checkbox做成radio一样的单选效果
查看>>
分享:将业务系统页面嵌入到统一平台中(简易版)
查看>>
我要学习Python
查看>>
toad连接数据库
查看>>
Convert recaf.jar file to recaf.dmg setup package on MacOS
查看>>
tp5之行为监听、钩子行为的绑定与侦听
查看>>
Java中算法的时间及空间复杂性
查看>>
Qt中Pro文件变量详细说明
查看>>