zoukankan      html  css  js  c++  java
  • Python 函数参数有冒号 声明后有-> 箭头 返回值注释 参数类型注释

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

  • 相关阅读:
    009-Python-面向对象
    008-Python-模块
    007-Python函数-装饰器
    006-Python函数
    005-Python字典
    003-python列表
    PyCharm之python书写规范--消去提示波浪线
    001-python基础
    Java基础总结(一)
    High ASCII字符从bat文件到dos控制台的转化问题
  • 原文地址:https://www.cnblogs.com/jfdwd/p/11208922.html
Copyright © 2011-2022 走看看