PEP 646 – Variadic Generics介绍这个 PEP 之前需要补一些知识,我们逐步深入先了解一下泛型 (Generics)。泛型是指在定义函数或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。对于 Python 这种动态语言,因为一切都是对象引用,可以在使用时直接判断类型:In:defsay_type(obj):...:matchobj:...:caseint():...:print('int')...:casestr():...:print('str')...:casefloat():...:print('float')...:case_:...:print('other type')...:In:say_type(1)intIn:say_type('ss')strIn:say_type(1.1)floatIn:say_type([])othertype但是在类型检查时,就会涉及到泛型问题,可以在运行前就发现问题。举个例子:U=int|strdefmax_1(a:U,b:U)->U:returnmax(a,b)max_1("foo",1)max_1(1,"foo")max_1("foo","bar")max_1(1,2)在这个例子中,参数可以是数字或者字符串。但是可以明显的发现max_1("foo", 1)和max_1(1, "foo")运行
...
继续阅读
(30)