2017-08-01 61 views
13

Co to oznacza?Python - nawiasy klamrowe w podpowiedziach typów

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

Widziałem tę składnię używaną w niektórych standardowych modułów Pythona podczas pobierania dokumentacji poprzez pycharm, a ja nie mam pojęcia, co to znaczy. Jaki jest podany typ dla a w moim przykładzie? Jakie typy mogę przekazać do tej funkcji?

Szczególnym przykładem, gdzie widziałem to w Frame__init__ metody tkinter „s, gdzie parametr master jest typu {tk, _w}.

+0

wygląda jak 'f' może przyjmować parametr' a' typu 'int' lub' float' –

+1

Czy potrafisz wymienić jeden taki pakiet? W przypadku Pythona jest to odpowiednik komentarza, ale inne biblioteki, takie jak Mypy, mogą je wykorzystać do analizy kodu. –

+0

zmienne nie mają stałego/stałego typu w pythonie. Wskazówki to funkcja liniowa –

Odpowiedz

8

Jest to wskazówka z informacją, że chce obiekt o podanej nazwie atrybutów int "i„pływaka”- a dokładniej dla Tkinter„tk”i„_W”

I kodowane się minimalny przykład w pycharm :

enter image description here

Inpecting biblioteki Pythona sources - Widać, że tam są próbował dostęp do master.tk i master._w. To wszystko, co pycharm był w stanie wywnioskować na temat typu wzorca parametru, więc w ten sposób przekazał go do IDE.