Seite 1 von 1

Listentyp ändern

Verfasst: Montag 16. März 2009, 15:06
von sergo
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

Verfasst: Montag 16. März 2009, 15:12
von DasIch
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.

Verfasst: Montag 16. März 2009, 23:26
von birkenfeld
Wenn man `see` erwähnt sollte man aber auch dazusagen wo man das herbekommt: http://github.com/inky/see/tree/master

Verfasst: Dienstag 17. März 2009, 14:15
von sergo
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

Verfasst: Dienstag 17. März 2009, 14:30
von helduel
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:

Verfasst: Dienstag 17. März 2009, 14:42
von Leonidas
Vielleicht sollte der OP erwähnen, was er überhaupt für einen Editor/IDE verwendet...

Verfasst: Dienstag 17. März 2009, 15:48
von sergo
Ich verwende Eclipse.

Gruß,
Thomas

Verfasst: Dienstag 17. März 2009, 16:49
von helduel
sergo hat geschrieben:Ich verwende Eclipse.
Dann solltest du pydev installieren.

Verfasst: Dienstag 17. März 2009, 17:44
von 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.

Verfasst: Mittwoch 18. März 2009, 09:53
von sergo
Schade. Aber Trotzdem Danke.


Gruß,
Thomas

Verfasst: Mittwoch 18. März 2009, 11:11
von sma
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