在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型。

最新文章

  1. Tomcat(多版本)安装注意!
  2. 移动端 iframe的使用
  3. Maximum Likelihood
  4. jquery ajax POST 例子详解
  5. Android L Camera2 API 使用实例程序汇总
  6. MicrosoftActiveSync 安装
  7. 理解C++11正则表达式(2)
  8. Performance Counter的使用
  9. Android学习手记(3) Activity间传递数据
  10. POJ1275/ZOJ1420/HDU1529 Cashier Employment (差分约束)
  11. project euler 19: Counting Sundays
  12. IE 中创建 子窗口 传值 与接收值 【window.showModalDialog】
  13. 关于 .crash 分析
  14. js正则表达式验证
  15. 【一天一道LeetCode】#46. Permutations
  16. BBS论坛(十八)
  17. 通过KSoap三方插件解析WebService接口方法
  18. Spring之IOC注入
  19. 对实体 &quot;characterEncoding&quot; 的引用必须以 &#39;;&#39; 分隔符结尾
  20. GDB和GDB Server

热门文章

  1. js 生成32位随机数,可用于微信支付流水号(前端生成)
  2. SpringCloud 服务间互相调用 @FeignClient注解
  3. redis 事务(悲观锁和乐观锁)
  4. Python 从入门到进阶之路(二)
  5. Prism_Commanding(2)
  6. golang-结构体与指针
  7. golang-基础
  8. [转]UIPATH机器人指南
  9. JVM-0-JVM知识体系
  10. 10. java 匿名对象说明