Sre*_*ree 1 python methods python-3.x
在 python 中,不需要指定方法参数类型。Python 动态地解释它们。
但是在一些代码片段中,我看到了正在定义的类型。
def method(p1: int, p2: int) -> None
Run Code Online (Sandbox Code Playgroud)
1) 为什么要这样做 2) 对于其他数据结构,我只需要定义数据结构而不是它接受的参数类型
def multiply(num1: list, num2: list):
Run Code Online (Sandbox Code Playgroud)
为什么这样设计的目的。
以及为什么我不能定义列表的类型
def multiply(num1: list[int], num2: list[int]):
Run Code Online (Sandbox Code Playgroud)
小智 5
对于脚本的执行,类型注释是无关紧要的(它们被解释器丢弃)。
但是对于代码的清晰性来说,它们通常是一件好事。您可以立即看到特定函数/方法正在接受或返回什么类型的参数或返回类型。此外,当您尝试将不同类型传递给带注释的函数时,IDE(例如 PyCharm)通常会突出显示或发出警告,并且可以更轻松地推断您将带注释的函数的结果分配给的变量类型。
话虽如此,因为解释器不关心类型注释,所以它不会阻止您将错误类型的参数传递给函数(与带注释的不同)。例如,当您将函数的返回类型声明为数字但在函数体中返回字符串时,同样适用。IDE 可以突出显示它,但解释器不在乎。