Python中的函数参数有冒号 声明后有-> 箭头
2024-08-29 23:12:40
在python3.7 环境下 函数声明时能在参数后加冒号,如图:
def f(ham: str, eggs: str = 'eggs') -> str :
print("Annotations:", f.__annotations__)
print("Arguments:", ham, eggs)
return ham + ' and ' + eggs
print(f("test","abc"))
可能有疑问,python不是动态类型语言 ,难不成还能指定参数类型?
来看一下打印结果:
但同时也确实能传其他类型的值 如:f("test",123)
那结果如何呢? 如下:
当然会报错了啊,返回值是一个字符串,int型不能参与字符串拼接,那参数后写一个:str 和 ->str是什么意思呢?
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
note.youdao.com/noteshare?id=2dce86d0c2588ae7c0a88bee34324d76
在官方文档指明.__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 ' + eggs
print(f("test",123))
而声明函数后那个箭头:"->" 是返回值的注释,-> str 意思即是提醒函数使用者返回值会是一个str型。
最新文章
- Tomcat(多版本)安装注意!
- 移动端 iframe的使用
- Maximum Likelihood
- jquery ajax POST 例子详解
- Android L Camera2 API 使用实例程序汇总
- MicrosoftActiveSync 安装
- 理解C++11正则表达式(2)
- Performance Counter的使用
- Android学习手记(3) Activity间传递数据
- POJ1275/ZOJ1420/HDU1529 Cashier Employment (差分约束)
- project euler 19: Counting Sundays
- IE 中创建 子窗口 传值 与接收值 【window.showModalDialog】
- 关于 .crash 分析
- js正则表达式验证
- 【一天一道LeetCode】#46. Permutations
- BBS论坛(十八)
- 通过KSoap三方插件解析WebService接口方法
- Spring之IOC注入
- 对实体 ";characterEncoding"; 的引用必须以 &#39;;&#39; 分隔符结尾
- GDB和GDB Server