在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 ' + eggs
5
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 ' + eggs print(f("test",123))

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

最新文章

  1. 报表控件NCreport教程:报表高级设计
  2. KMP算法分析
  3. javac 编译与 JIT 编译
  4. ObjC.class-cluster
  5. delphi 10.1 berlin最新的开发框架:咏南中间件+咏南开发框架,购买后提供全部的源码
  6. go与json
  7. 【记录】ACM计划
  8. UIButton 之 按下高亮
  9. Java IO(四)
  10. Spring+MyBatis整合过程
  11. 关于Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/springmvc-demo-01-start]]出错的解决方法
  12. postgresql某进程占用cpu资源过高,降不下来
  13. win7频繁提示资源管理器已停止工作解决办法
  14. ABBYY OCR技术教电脑阅读缅甸语(上)
  15. Vue.js使用-组件(下篇)
  16. MyBatis-动态SQL的if、choose、when、otherwise、trim、where、set、foreach使用(各种标签详解), 以及实体间关系配置
  17. Java 爬虫(获取指定页面中所有的邮箱地址)
  18. Vue项目中用的Jquery.js和easing.js做的抛物线
  19. vi语法高亮,自动缩进(转)
  20. 从Zero到Hero,一文掌握Python关键代码

热门文章

  1. leetcode 60-80 easy
  2. HR招聘_(二)_招聘方法论(招聘原因及原则)
  3. 运行Jmeter时,响应数据中文乱码问题解决办法
  4. 【python小随笔】Django+错误日志(配置Django报错文件指定位置)
  5. 从零起步 系统入门Python爬虫工程师
  6. at: 安排一个任务在未来执行,需要一个atd的系统后台进程
  7. C++11中的并发
  8. 51nod1196 字符串的数量
  9. Directx11教程(62) tessellation学习(4)
  10. Android Binder设计与实现 – 设计篇