Pycontracts.

Ein Python-Paket, mit dem Einschränkungen auf Funktionsparametern und Rückgabewerte deklarieren können
Jetzt downloaden

Pycontracts. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • LGPL
  • Name des Herausgebers:
  • Andrea Censi

Pycontracts. Stichworte


Pycontracts. Beschreibung

Ein Python-Paket, mit dem die Einschränkungen auf Funktionsparameter und Rückgabewerte deklariert werden können PYCONTRACTS ist eine Python-Bibliothek, mit der Einschränkungen zu Funktionsparametern und Rückgabewerten deklarieren können. Es unterstützt ein Basistypsystem, Variablen bindende, arithmetische Beschränkungen und verfügt über mehrere spezielle Verträge (insbesondere für numpy-Arrays). Eine kurze Zusammenfassung folgt. Sehen Sie sich die vollständige Dokumentation an: http://andreacensi.github.com/contracts/Wary: Der Zweck von PyContracts ist nicht, Python nicht in eine statisch eingegebene Sprache zu verwandeln (obwohl Sie sich so streng wie Sie möchten), sondern eher als streng , um die zeitaufwändige und verschleierte Überprüfung verschiedener Voraussetzungen zu vermeiden. In der Tat fand ich mehr als die Typeneinschränkungen, fand ich die Fähigkeit, Wert- und Größenbeschränkungen aufzuerlegen. Beispielsweise, "Ich brauche eine Liste von mindestens 3 positiven Zahlen", kann als Liste (Anzahl,> 0)) ausgedrückt werden. Wenn Sie feststellen, dass PyContracts für Sie übertrieben ist, möchten Sie möglicherweise eine einfachere Alternative ausprobieren, wie beispielsweise Typecheck. Wenn Sie feststellen, dass PYCONTRACTS für Sie nicht ausreicht, möchten Sie wahrscheinlich Haskell anstelle von Python-Konstruktionen verwenden Verträge def my_function (A: 'Int,> 0', B: 'List , N> 0') -> 'List ' ': # erfordert B, um eine nichtheppige Liste zu sein, und der Rendite # -Wert auf haben die gleiche Länge. ... * mit: Typ: und: RTTYPE: Tags in DocStrings. Auf diese Weise werden sie in Ihre Sphinx-Dokumentation aufgenommen: @Contracts Def My_Function (A, B): "" "Funktionsbeschreibung.: Typ A: Int,> 0: Typ B: Liste , n> 0: RTTYPE: Liste "" "... * Verwenden Sie Argumente an die Dekorateor; Der geringste aufdringliche Weg: @Contracts (A = 'Int,> 0', B = 'List , N> 0', Returns = 'Liste ') def my_function (A, B): ... Darüber hinaus gibt es Hilfsfunktionen für die manuelle Werteprüfung: Check ('Array (UINT8), H> 10, W> 10', Bild) sowie Haken, um PyContracts mit neuen Verträgestypen zu erweitern: new_contract ('valid_name ', lambda s: isinstance (s, str) und len (s)> 0) Prüfen (' dict (int: (gültig_name, int)) ', Mitarbeiter) Status: PyContracts ist sehr gut getestet und dokumentiert, jedoch bin ich jedoch Halten der Version auf 0.9, da einige geringfügige Variationen der Syntax aufgrund von Feedback und Vorschlägen von Benutzern wahrscheinlich gemacht werden. Anforderungen: · Python


Pycontracts. Zugehörige Software