attrgetter/attrsetter

  • fuerchte ich brauche mal die expertise der coding experten hier:


    ich komme einfach nicht drauf, fuer was dieses codestueck aus emc da ist und wie es funktionert.
    ich verstehe, dass gettattr das attribut eines objects zurueckliefert... getattr(object, "attr") ... aber genausogut koennte man doch offensichtlicher object.attr schreiben.
    und property ist quasi ein indirekter zugriff auf die variable... in diesem fall ueber die getter funktionen.
    aber warum so "umstaendlich"??? und nicht direkt?
    danke.

  • warum, variablen sterben halt mit den klassen, das ist ja das feine an python das du nichts deklarieren brauchst, sondern einfach verwenden kannst aber dann braucht es eben auch ein Housekeeping das verhindert das dir dadurch nach einiger zeit der speicher ausgeht. Willst du dann etwas das ewig lebt muss es halt von etwas kommen das nicht stirbt. :grinning_face_with_smiling_eyes:


    und wenn du es nicht staendig mituebergeben und zurück geben willst ist das eine Möglichkeit drauf zuzugreifen....

  • muss es halt von etwas kommen das nicht stirbt.

    d.h. das konstrukt speichert die variablen in der parent instanz.. also der klasse, die die klasse mit den statischen variablen instanziiert.
    dann muesste man doch in der parent instanz auch auf die variablen zugreifen koennen.
    sind das dann die variablen mit dem _ davor?

  • Bitte auch mal die diversent turorials und man pages lesen vor dem Fragen, das kommt nicht so tolle wenn wir dir die abtippen sollen ….


    _single_leading_underscore
    This convention is used for declaring private variables, functions, methods and classes in a module. Anything with this convention are ignored in from module import *.

  • ich wollte eigentlich keine erklaerung fuer den underscore, sondern wissen, ob man in der parentinstanz auf die statischen variablen zugreifen kann... und wie. danke.

  • warum, variablen sterben halt mit den klassen,

    ja, das ist so... und das verhindert das obige konstrukt auch nicht.
    nach weiterer recherche komme zum schluss, dass das konstrukt klassenvariablen ueber mehrere instanzen der klasse synchron haelt.
    da es aber von obiger klasse nur eine instanz gibt, ist das imho ueberfluessig.