python 函数如何指定参数类型?

  • Post category:Python

在Python中,虽然不需要指定函数参数的类型,但有时候我们需要指定参数类型,以便于保证函数能够正确地处理传入的参数。下面是Python函数指定参数类型的攻略。

使用类型注解指定参数类型

Python 3.0以后版本支持对函数参数进行类型注解。对于需要指定类型的参数,可以在参数后面用冒号和类型名称表示参数类型。

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

在这个例子中,我们用->语法指定了函数的返回类型为整数类型int,并且在函数的两个参数xy的后面分别用冒号指定了它们的类型为整数类型int

使用类型检查器进行类型验证

Python本身不会执行类型检查,但是我们仍然可以使用类型检查器来验证函数参数的类型。其中mypy是Python中一种常用的静态类型检查工具。

下面是使用mypy对上述函数进行类型验证的代码,可以使用以下命令安装mypy进行尝试。

pip install mypy
# python代码:指定参数类型 add.py
def add(x:int, y:int) -> int:
    return x + y
# mypy验证
mypy add.py

如果函数的参数类型与类型注解不一致,则会出现类型验证错误提示。

使用assert语句进行类型验证

如果不想使用类型检查器,也可以在函数内部使用assert语句来手动验证参数类型。

下面是代码示例。

def add(x:int, y:int) -> int:
    assert isinstance(x, int), 'x必须是整数类型'
    assert isinstance(y, int), 'y必须是整数类型'
    return x + y

在这个示例中,我们使用isinstance函数判断参数x和y的类型是否为int类型,如果不是,则抛出类型错误提示信息。

以上介绍的就是Python函数指定参数类型的攻略,不同的技术选择适合不同的场景。