2017-08-01 65 views
13

這些是什麼意思?Python - 類型提示中的花括號

def f(a: {int, float}): 
    pass 

我已經看到了這個語法通過PyCharm獲取文檔時,在一些標準的模塊使用,我不知道這意味着什麼。我的例子中a的暗示類型是什麼?我可以傳遞給這個函數的類型是什麼?

其中我已經看到,這是在tkinterFrame__init__方法,其中master參數是{tk, _w}類型的具體例子。

+0

看起來像'f'可以採用'int'或'float'類型的參數'a' –

+1

你能舉出一個這樣的包嗎?對於Python而言,它相當於一條評論,但其他庫如Mypy可以使用它們來分析代碼。 –

+0

變量在Python中沒有固定/永久類型。提示是一個短信功能 –

回答

8

這是一個提示,告訴你它要與指定的屬性「廉政」和「浮動」的對象 - 或者更具體地說爲Tkinter的「傳統知識」和「_W」

我編寫了在pycharm一個小例子, :

enter image description here

Inpecting Python庫sources - 你可以看到,有企圖訪問master.tkmaster._w。這就是pycharm所能夠推斷出的參數主機的類型,所以它以這種方式將它浮動到IDE中。