Closed Morg42 closed 3 months ago
würde es find_attribute nennen. Falls das gar nicht behagt, dann find_attribute_value -> find_attr_value
Wenn wir uns einig sind, dass die neuen Methoden gut (genug) sind, könnten wir _get_attribute_value und return_parent jeweils ersetzen, da der Aufruf rückwärtskompatibel ist (neue Argumente sind optional und im default so wie die ursprüngliche Funktion). return_parent müsste ggf. auf Performance optimiert werden (if level == 1 -> return self.__parent, else ...
)
find_attr können wir nach Belieben umbenennen. find, weil man nicht sicher sein muss, wo genau man etwas herbekommt ;)
So, habe Item.return_parent() und Item._get_attribute_value() jeweils durch die "neuen" Funktionen ersetzt und in return_parent() einen Shortcut eingebaut.
find_attr() heißt jetzt find_attribute().
added three Item methods:
return_ancestor(level, strict): like return_parent, but multi-level
find_attr(attr, default, level, strict): find attribute in ancestors, up to or at given level
find_attribute_value(attr_ref, current_attr, default, ignore_current_item): like _get_attribute_value, but not limited to 4 levels (uses find_attr)
find_attribute_value could - if wanted - replace _get_attribute_value and remove the limit to 4 levels