python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python函数元数据为一个参数指定多个类型

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:

https://python3-cookbook.readthedocs.io/zh_CN/latest/c07/p03_attach_informatinal_matadata_to_function_arguments.html

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文