Listentyp ändern

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
sergo
User
Beiträge: 11
Registriert: Donnerstag 5. Juni 2008, 13:49

Hallo alle zusammen,

ich erstelle Objekt und packe sie anschließend in eine List.
Dann rufe ich wie folgt ein Objekt mit der benötigten Funktion auf.

Code: Alles auswählen

Liste[0].getValue()


Das funktioniert alles super. jedoch möchte ich wenn ich

Code: Alles auswählen

Liste[0].
schreibe
das mir alle Methoden/Funktionen des Objekts angezeigt werden und nicht
die Methoden/Funktion der Liste (append, pop, usw.)

Würde mich für einen Tipp freuen.

Danke und Schöne Grüße,
Thomas
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Dein zweites Beispiel gibt einen SyntaxError. Was du vielleicht willst ist folgendes:

Code: Alles auswählen

In [1]: see(foo[0])
Out[1]:
  +   -   *   /   //   %   **   <<   >>   &   ^   |   +@   -@   ~   <   <=
  ==   !=   >   >=   abs()   bool()   divmod()   float()   hash()   help()
  hex()   int()   long()   oct()   repr()   str()   .conjugate()
  .denominator   .imag   .numerator   .real
`see` ist jetzt eine kleine Spielerei aber `dir` würde auch gehen.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Wenn man `see` erwähnt sollte man aber auch dazusagen wo man das herbekommt: http://github.com/inky/see/tree/master
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
sergo
User
Beiträge: 11
Registriert: Donnerstag 5. Juni 2008, 13:49

ich glaub ihr hab mich falsch verstanden.

Was ich meine ist die Codevervollständigung.

Damit das funktioniert, muss die Liste mit den Objekten, als eine Liste/Dictionary vom Typ Objekt seien, wenn ich mich nicht täusche und nicht vom Typ Liste/Dictionary. Ist das Richtig?

Aber wie macht man das, oder funktioniert das anders?

Gruß,
Thomas
Benutzeravatar
helduel
User
Beiträge: 300
Registriert: Montag 23. Juli 2007, 14:05
Wohnort: Laupheim

sergo hat geschrieben:Was ich meine ist die Codevervollständigung.
Wie das funktioniert, hängt von deinem Editor ab. In Python funktioniert Code-Vervollständigung aber eh nur bedingt.
sergo hat geschrieben:Damit das funktioniert, muss die Liste mit den Objekten, als eine Liste/Dictionary vom Typ Objekt seien, wenn ich mich nicht täusche und nicht vom Typ Liste/Dictionary.
Was mag dieser Satz bedeuten? :shock:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Vielleicht sollte der OP erwähnen, was er überhaupt für einen Editor/IDE verwendet...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sergo
User
Beiträge: 11
Registriert: Donnerstag 5. Juni 2008, 13:49

Ich verwende Eclipse.

Gruß,
Thomas
Benutzeravatar
helduel
User
Beiträge: 300
Registriert: Montag 23. Juli 2007, 14:05
Wohnort: Laupheim

sergo hat geschrieben:Ich verwende Eclipse.
Dann solltest du pydev installieren.
BlackJack

@sergo: Ich würde mal sagen: Vergiss es. Die IDE kann halt nicht wissen was für ein Typ das Objekt in der Liste hat, weil man in Listen alle möglichen Objekte stecken kann. Die Liste selber hat nur den Typ "Liste" und nicht "Liste mit Objekten vom Typ 'X'".

Für bestimmte Quelltextkonstellationen könnte eine IDE vielleicht noch die Typen erraten, aber das ist ziemlicher Overkill.
sergo
User
Beiträge: 11
Registriert: Donnerstag 5. Juni 2008, 13:49

Schade. Aber Trotzdem Danke.


Gruß,
Thomas
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Du musst Python um ein ausreichend mächtiges statisches Typsystem erweitern und dies der IDE bekannt machen (will sagen, dort ein Inferenzmaschine dafür implementieren). Dann kann sie dieses bei der Code-Completion zur Auswahl möglicher Alternativen heranziehen.

Bis dahin muss leider die IDE dumm bleiben und der Entwickler muss dies durch seine eigene Schläue ausgleichen :)

Stefan
Antworten