本文值代表个人见解,若有不当之处,希望大家指出。
a.pyi文件可以对a.py文件中的数据类型进行指定,
指定以后,如果调用数据类型不规范,会报错。
比如a.py
文件内容如下:
def greeting(name): # 注意此处未指定数据类型
return "Hello" + name
a.pyi
文件如下:
def greeting(name: str) -> str: # 指定函数数据类型,函数名一样,其他不做任何操作
pass
写好上面两个代码后,在pycharm中会有如下展示方式:
可以看到在两个对应的函数前面有 *
星号,点击星号可以跳转到对应位置
调用a.py中的greeting函数
# 在a.py中加上下面的代码运行
print(greeting(1258))
# 会得到如下报错
TypeError: can only concatenate str (not "int") to str # 因为指定了参数传入是str类型,因为传入的1258是int类型,所以报错
修改数据类型后重新调用
# 传入str类型数据
print(greeting('1258'))
# 此时代码正确执行,输出:
Hello1258