Programm mit bestimmten "Regeln" laufen lassen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
JohannesGolf
User
Beiträge: 34
Registriert: Montag 10. März 2014, 09:27

Hallo zusammen,

erstmal möchte ich mich noch mal für eure Hilfe in letzter Zeit bedanke.
Das Programm an dem ich schreibe ist fast fertig.

Ich brauch aber noch etwas.
Mit dem Programm möchte ich meine Textdokumente nach bestimmten Sachen durchsuchen.
Ich hab hierzu "Regeln" erstellt, die mir die Zeilennummer vom File ausgibt, wo es GEGEN diese Regel verstößt.
Das funktioniert auch.
Ich will es nun so machen, dass Ich nun in einem externe File eine Art "Gäste Liste" machen,
in der in eintragen kann, ob diese Regel soll geprüft werden und andere nicht.

Ich hab schon etwas gesucht und bin da auf "python decorator" gestoßen.
Bin ich mit dem auf dem Richtigen Weg oder habt ihr eine bessere Idee.

Kann es überhaupt so machen wie ich es oben beschrieben habe?

Vielen Dank im Voraus.

Grüße JohannesGolf
BlackJack

@JohannesGolf: Was sind ”Regeln” hier? Falls das Funktionen sind, dann könntest Du ein Wörterbuch das Regelnamen auf die Testfunktion abbildet und in der externen Datei dann Benutzer auf Regelnamen abbilden und das dann auf diese Weise verknüpfen.
JohannesGolf
User
Beiträge: 34
Registriert: Montag 10. März 2014, 09:27

ja, mit Regeln meine ich Funktionen.

Also ich meine damit.
In diesem externen File steht z.B.
Prüfe: Regel1, Regel2, Regel4,
Ignoriere: Regel3,

Er führt dann nur die Funktionen die dem Regelnamen (RegelX) entsprechen.
Die in Ignoriere stehen sollen dann nicht ausgeführt werden
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@JohannesGolf
Falls ich Dich richtig verstehe…:

Code: Alles auswählen

FRUITS = ['apple', 'peach', 'apricot', 'pear']
VEGETABLES = ['potato', 'carrot', 'tomato', 'spinach']
SALADS = ['potato', 'carrot', 'tomato', 'lettuce']

def is_fruit(value):
    return value in FRUITS

def is_vegetable(value):
    return value in VEGETABLES

def is_salad(value):
    return value in SALADS

RULES = {
    'is_fruit': is_fruit, 'is_vegetable': is_vegetable, 'is_salad': is_salad
}

def what_is_it(value, rules):
    for rule in rules:
        yield rule, RULES[rule](value)

Code: Alles auswählen

>>> list(what_is_it('apple', ('is_fruit', 'is_vegetable')))
[('is_fruit', True), ('is_vegetable', False)]
>>> list(what_is_it('potato', ('is_fruit', 'is_vegetable', 'is_salad')))
[('is_fruit', False), ('is_vegetable', True), ('is_salad', True)]
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
JohannesGolf
User
Beiträge: 34
Registriert: Montag 10. März 2014, 09:27

Vielen Dank für die Hilfe.
Hab es hinbekommen.
Antworten