Seite 1 von 1

Descriptors Frage

Verfasst: Dienstag 5. Juli 2011, 08:47
von frabron
Hallo,

kann man im Descriptor herausfinden, an welches Attribut ein Descriptor gebunden ist?

Code: Alles auswählen

class String(object):
    def __get__(self, instance, owner):
        pass

class C(object):
    foo = String()
Kann ich also in String() herausfinden, dass es an foo von C() gebunden ist? Sicherlich könnte man da was mittels inspect und der instance machen, aber vielleicht geht das ja auch einfacher.

Gruss

Frank

Re: Descriptors Frage

Verfasst: Dienstag 5. Juli 2011, 08:51
von deets
Nein, das kannst du nicht. Um sowas rauszubekommen verwendet man ueblicherweise Metaklassen, oder Klassendekoratoren (in Python 3, und ich *glaube* 2.7, aber hab' gerade keins da).

Re: Descriptors Frage

Verfasst: Dienstag 5. Juli 2011, 09:05
von frabron
Oki, danke :)

Re: Descriptors Frage

Verfasst: Dienstag 5. Juli 2011, 13:18
von DasIch
Das geht indem man den Bytecode analysiert allerdings wird es bei ``foo, bar = Spam(), Spam()`` schon problematisch.

In Produktivcode sollte man solche "Magie" ohnehin nicht verwenden.