Python函数元数据实现为一个参数指定多个类型
作者:星云
这篇文章主要介绍了Python函数元数据实现为一个参数指定多个类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Python函数元数据为一个参数指定多个类型
加上引号就好了
def foo(value: 'str|int|float|list|tuple'): print(value) foo(None)
Python函数元数据使用笔记
由于Python是一门解释型语言,在Python中定义变量不需要指明类型,所以当我们在编写函数时,可以为函数的参数添加一些额外的信息来指明变量类型,以方便其他人使用。
因此,可以使用函数参数注解来提示使用者传入变量的类型。
例如:
def Test(a:int,b:float)->float: return a*b print(Test(1,2.7)) print(Test.__annotations__)
Result:
如图,函数的注解表示:输入的变量a为int型,输入的变量b为float型,函数的返回值为float型。
Python解释器不会对这些注解添加任何语义,也不会使用注解对传入的变量进行类型检查,而在函数运行时与没有加注解之前的效果也没有任何的差距。
然而,给函数添加注解对函数的使用者和阅读源码的人来说帮助很大。
有的第三方工具和框架可能会对这些注解添加语义。同时,这些注解也会出现在文档中。
Result:
函数的注解储存在函数的__annotations__属性中,尽管注解的使用方法可能有很多种,但是注解的主要用途还是文档,因为在Python中没有类型声明,通常仅仅通过阅读源码很难知道应该传递什么样的参数给函数,此时使用注解就能给使用者更多的提示,使使用者可以正确的使用函数。
Reference:
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。