2017-08-01 8 views
13

Was bedeuten diese?Python - geschweifte Klammern in Typhinweisen

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

Ich habe diese Syntax in einigen Standard-Python-Modulen zu sehen, wenn Dokumentation über PyCharm holen, und ich habe keine Ahnung, was es bedeutet. Was ist der angezeigte Typ für a in meinem Beispiel? Welche Arten kann ich an diese Funktion weitergeben?

Das spezielle Beispiel, wo ich dies in tkinter ‚s Frame__init__ Methode gesehen haben, wo der master Parameter von {tk, _w} Typ ist.

+0

sieht aus wie 'f' kann einen Parameter' a' vom Typ 'int' oder' float' nehmen –

+1

Können Sie ein solches Paket nennen? Für Python entspricht es einem Kommentar, aber andere Bibliotheken wie Mypy können sie verwenden, um Code zu analysieren. –

+0

Variablen haben keinen festen/permanenten Typ in Python. Hinweise sind ein Linter-Feature –

Antwort

8

Es ist ein Hinweis sagen Sie es ein Objekt mit dem Namen Attribute ‚int‘ will und ‚schweben‘ - oder genauer gesagt für tkinter ‚tk‘ und ‚_w‘

ich ein minimales Beispiel in PyCharm codiert up :

enter image description here

die python-Bibliothek Inpecting sources - können Sie sehen, dass es Zugriffe auf master.tk und master._w versucht werden. Das ist alles, was pycharm in der Lage war, auf den Typ des Parameter-Masters zu schließen, so dass er auf diese Weise an die IDE weitergegeben wurde.

Verwandte Themen