如何像 C 一样为 python 的函数设置指定参数



请我如何指定函数的返回值和所需参数的类型,就像在C中我们声明这样的原型函数和类型它需要:

int *atoi(char *str)

参数和变量都可以使用。但问题是this类型可以在赋值时随时更改。

a:int = 4

,但这也会工作,而不会引发错误

a:int = "this is string"

和获取函数参数

def func(arg1:int , arg2:str = "hello"): -> str
#do something

上面的函数将以整数作为第一个参数,以字符串作为第二个参数,并将输出一个字符串。

但是没有像C或java那样的约束。此类参数必须仅为指定的数据类型。输出数据类型也是如此。

不幸的是,在python中没有明确的约束方法。也就是说,你可以这样写代码:

def func(a:int, b:str):
print(type(a))
print(type(b))
func("Hello!", 31)
# >>> <class 'str'>
# >>> <class 'int'>

如果你想在代码上设置约束,我建议设置一个try/except子句,它试图转换为正确的类型,如果不工作则会引发错误。像这样:

def func(a:int, b:str):
try:
a = int(a)
except ValueError:
raise ValueError(f"Input {a =} not understood as integer. ")
try:
b = str(b)
except ValueError:
raise ValueError(f"Input {b =} not understood as string. ")
# func("Hello!", 31) # raises value errors.
func(31, "Hello!") # passes. With variables cast to right type.

最新更新