print Anzeigetext extrahieren (Package Hierarchie)

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
h1vltg3
User
Beiträge: 5
Registriert: Sonntag 7. Dezember 2008, 23:27

Hallo zusammen,

hat vielleicht jemand eine Idee, wie man den Text, den ein print-Befehl erzeugt weiter verwenden kann ?

z.B.

print A
>>> <class 'ZCML.TOP.SUB.foo_mod.A'>

daraus bräuchte ich den Text: ZCML.TOP.SUB.foo_mod.A extrahiert, in eine Variable gespeichert.

Im Grunde will ich einfach nur die Package Hierarchie von der Klasse A abfragen, habe aber leider noch keine brauchbare Lösung gefunden, die mir genau diesen Text "ZCML.TOP.SUB.foo_mod.A " anzeigt. Den String zu extrahieren ist vielleicht nicht die eleganteste Lösung .. würde mir aber erstmal reichen.

Danke für eure Hilfe !
BlackJack

@h1vltg3: Die elegante Variante wäre wohl eher die Attribute `__name__` und `__module__` von `A` zu verwenden.

Edit:

Code: Alles auswählen

In [21]: print Element
<class 'xml.etree.ElementTree.Element'>

In [22]: print '{0.__module__}.{0.__name__}'.format(Element)
xml.etree.ElementTree.Element
h1vltg3
User
Beiträge: 5
Registriert: Sonntag 7. Dezember 2008, 23:27

Vielen Dank, scheint zu funktionieren!

Könntest du mir den Code noch etwas weiter erläutern, bzw. auf was dieser Befehl beruht ?
Diverse Logger benutzen den selben Befehl, aber so ganz klar wie das funktioniert ist mir nicht :-)
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Auf nichts besonderem:

Code: Alles auswählen

In [1]: from xml.etree.ElementTree import Element

In [2]: "%s.%s" % (Element.__module__, Element.__name__)
Out[2]: 'xml.etree.ElementTree.Element'
`str.format` laesst eben Attributszugriffe in den Formatstrings zu, mehr unter https://docs.python.org/2/library/strin ... matstrings
Antworten