[PYTHON] Beherrschung von Typhinweisen in PyCharm

Bei PyCharm basiert die Typinferenz auf den Kommentaren in docstring.

def foo(x):
    """
    :rtype: list of str
    """
    return x

def bar(x):
    a = foo(x)
    a[0].  # <-Zu diesem Zeitpunkt ist die Zeichenfolgenmethode ein Kandidat

docstring

Es scheint zu akzeptieren, wie man Sphinx und Epytext schreibt, aber da Sphinx in Python häufiger vorkommt, sollten wir es lernen.

def repeat(x, y):
    """
    :param str x: value to repeat
    :type  y: int
    :param y: number of repeat
    :rtype:   str
    :return:  repeated string
    """
    return x * y

Das Argument kann wie folgt geschrieben werden: : param type name: oder : type argument name: type. Schreiben Sie den Rückgabewert als : rtype:.

Typdeklaration

Sie können grob verstehen, wie man es schreibt, indem Sie sich die Datei "StdlibTypes2.properties" ansehen. Diese Datei befindet sich im Verzeichnis / Applications / PyCharm 2.7.2 EAP.app / helpers auf dem Mac.

Hier einige Auszüge.

__builtin__.locals = \
  :rtype: dict of (string, unknown)

__builtin__.filter = \
  :type function_or_none: collections.Callable or None \n\
  :type sequence: collections.Iterable of T \n\
  :rtype: list of T \n\

__builtin__.enumerate.__init__ = \
  :type iterable: collections.Iterable of T \n\
  :type start: int or long \n\
  :rtype: enumerate of (int, T) \n\

__builtin__.enumerate.next = \
  :rtype: (int, T) \n\

__builtin__.dict.__init__ = \
  :type seq: collections.Iterable of (T, V) \n\
  :rtype: dict of (T, V) \n\

__builtin__.dict.__getitem__ = \
  :type y: T \n\
  :rtype: V \n\

__builtin__.dict.items = \
  :rtype: list of (T, V) \n\

Komplexe Typen können nur für Taples als "(int, str)" geschrieben werden, und sie scheinen ansonsten mit "of" like "dict von (T, V)" dargestellt zu werden.

Es scheint, dass das Typargument ein einzelnes Großbuchstaben sein kann, nicht nur T.

Wenn Sie einen allgemeinen Typ zurückgeben, erscheint es gut, ABC in "Sammlungen" in Form von "T" zu verwenden.

Wenn Sie mehr als eine Person empfangen können, scheint es eine Verbindung mit "oder" für "int oder None" zu geben.

Geben Sie Hinweise auf andere Variablen ein

#: :type: int
x = unknown()

Sie können einen Hinweis geben, indem Sie einen Kommentar wie diesen hinzufügen. Aber

#: ????
a, b = unknwon()

Ich weiß immer noch nicht, wie ich in diesem Fall andeuten soll. Sie können es einmal in einem Taple empfangen, aber es ist umständlich, daher scheint es besser zu sein, Folgendes zu definieren: rtype: richtig auf der Funktionsseite.

Recommended Posts

Beherrschung von Typhinweisen in PyCharm
Ich habe PEP 585 gelesen (Type Hinting Generics In Standard Collections)
Remote-bezogene Einstellungen in Pycharm
Nachdem Sie entschieden haben, wo die Beschriftung abgelegt werden soll, müssen Sie im nächsten Schritt den Anzeigeinhalt, das Anzeigeformat usw. festlegen. Im obigen Beispiel lautet die Position beispielsweise set_xticks ([300.600.900]). Wenn Sie sie jedoch auf dem Display auf klein, mittel oder groß einstellen möchten, setzen Sie set_xticklabels (['klein', 'mittel', 'groß']). Sie können die Neigung des Zeichens mit Drehung festlegen. Wenn es 90 ist, wird es vertikal sein. Die Größe bleibt gleich. Hier möchten wir die Daten von 6/1 bis 6/10 so anzeigen, wie sie sind, also ersetzen wir x0 so wie sie sind. Weitere Anpassung des Anzeigeformats Wenn x0 normal angezeigt wird, werden das ganze Jahr, der Monat, der Tag, die Stunde, die Minute und die Sekunde angezeigt und es ist lang, sodass nur das Jahr, der Monat und der Tag angezeigt werden. Farbe hinzufügen
Sparen Sie Zeit mit SQLAlchemy
Verwenden Sie <input type = "date"> mit Flask
Definition des Funktionsargumenttyps in Python
Laden Sie JSON-Typen dynamisch mit Python
Typ in Python angegeben. Ausnahmen auslösen
[Frage] Kein Modul namens "Selenium" in PyCharm