本文值代表個人見解,若有不當之處,希望大家指出。
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