MetaTag Variante mit Dict.

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
Qwark
User
Beiträge: 4
Registriert: Mittwoch 26. April 2006, 03:48

Hallo,

ich bin dabei ein kleines privates Projekt zu schreiben, welches eine Art Extension um/für die Shell ist. Nun habe ich einmal eine console.py und in einem Ordner module/*.py die verschiedenen Module, welche in der console.py automatisch beim Start geladen werden. In den jeweiligen Modulen habe ich eine Klasse und ein Dictionary angelegt, welche in dieser Art aufgebaut sind:

Code: Alles auswählen

class program_1:
	info = {
	"author: xxx yyy",
	"version: 0.1",
	"contact: xxx@yyy.com
       }
...
In der console.py mache ich nun als erstes folgendes:

Code: Alles auswählen

        for obj in module[0].__dict__.values():
            if isinstance(obj, types.ClassType):
		return obj
 
danach greife ich mit obj.info auf das Dictionary zu:

Code: Alles auswählen

            for k, v in obj.info.items():
                print  k.rjust(15), "-", v
um das ganze Dictionary auzugeben, dies Funktioniert auch. Allerdings wird das Dictionary nicht so ausgegeben, wie ich es definiert habe. Nun las ich auch im Manual folgendes:
Keys and values are listed in an arbitrary order which is non-random, varies across Python implementations, and depends on the dictionary's history of insertions and deletions.
Hat evtl. einer eine ähnliche Variante, mit der ich das realisieren könnte? Ich müsste später auch mit obj.info["author"] die Daten holen können, somit fallen Listen imo weg, oder?

Danke für's Lesen.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Qwark hat geschrieben:
Keys and values are listed in an arbitrary order which is non-random, varies across Python implementations, and depends on the dictionary's history of insertions and deletions.
Hat evtl. einer eine ähnliche Variante, mit der ich das realisieren könnte? Ich müsste später auch mit obj.info["author"] die Daten holen können, somit fallen Listen imo weg, oder?
Hi Qwark!

Das hier: http://www.python-forum.de/post-12396.html#12396

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Qwark
User
Beiträge: 4
Registriert: Mittwoch 26. April 2006, 03:48

Danke, scheint gut zu funktionieren.

Bei der normalen dict() Version, gehts und mal geht es nicht. Hat diese
willkürliche und nicht zufällige Anordnung eigentlich einen tieferen Sinn?

Grus,
Qwark
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Antworten