python学习笔记 函数注解

博客内容主要来自:https://blog.51cto.com/limingyu/2311079

Python函数的参数注解

  • 函数定义的弊端:

    • python是动态语言,变量随时可以被赋值,且能赋值为不同的类型;

    • python不是静态编译语言,变量类型是在运行器决定的;

    • 动态语言很灵活,但是这种特性也是弊端;

def add(x, y):
    return x + y
    
print(add(4, 5))
print(add('hello', 'world'))
add(4, 'hello')#

难发现:由于不做任何类型检查,直到运行期间问题才显现出来,或者线上运行时才能暴露出问题;

难使用:函数的使用者看到函数的时候,并不知道你的函数的设计,并不知道应该传入什么类型的数据;

如何解决这种动态语言定义的弊端呢?

增加文档Documentation String
这只是一个惯例,不是强制标准,不能要求程序员一定为函数提供说明文档;
函数定义更新了,文档未必同步更新;

def add(x, y):
    '''
    :param x: int
    :param y: int
    :return: int
    '''
    
    return x + y

print(help(add))
那有没有别的方法呢?

函数注解Function Annotations

def add(x: int, y: int) -> int:
    '''
    :param x: int
    :param y: int
    :return: int
    '''
    
    return x + y

print(help(add))
print(add('hello', 'world')) ###思考一下这里会报错吗?

Python 3.5引入

对函数的参数进行类型注解;

对函数的返回值进行类型注解;

只对函数参数做一个辅助的说明,并不对函数参数进行类型检查;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值