Frage

Ich möchte eine Art Warnung als Fehler zu raisen, aber nur das erste Vorkommen. Wie man das macht?

Ich las http://docs.python.org/library/warnings.html und ich weiß nicht, wie diese zwei Arten von Verhalten zu kombinieren.

War es hilfreich?

Lösung

auf den Code der Suche nach warnings.py, können Sie nicht mehr als eine Warnung Filteraktion zuweisen, und Sie können nicht (leicht) definieren Sie Ihre eigenen Aktionen, wie ‚raise_once‘.

Wenn Sie jedoch eine Warnung als Ausnahme erhöhen möchten, aber nur einmal, das bedeutet, dass Sie die Ausnahme sind, zu kontrollieren. Warum eine Linie nicht außer Klausel in Ihrem setzen, die eine ‚ignore‘ Aktion auf dieser speziellen Warnung setzt?

#!/usr/bin/python

import warnings

warnings.filterwarnings('error','Test')
for i in range(2):
  try:
    warnings.warn('Test');
  except UserWarning, e:
    print "Error caught"
    warnings.filterwarnings('ignore','Test')
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top