Seite 1 von 1
Übersicht der verfügbaren Funktionen in Python
Verfasst: Sonntag 2. November 2008, 15:31
von BastiFantasti
Hallo,
ich lerne mich gerade in Python ein und bin auf der Suche nach einer Übersicht der verfügbaren Funktionen. Gibt es ein Programm, dass alle installierten Module/Funktionen durchforstet und dann eine Suchfunktion zur Verfügung stellt?
Gruß
Bastian
Verfasst: Sonntag 2. November 2008, 15:38
von str1442
docs.python.org
Re: Übersicht der verfügbaren Funktionen in Python
Verfasst: Sonntag 2. November 2008, 20:14
von farid
Hier ist eine Liste von Builtins (Funktionen bzw. Klassen, die immer zur Verfuegung stehen und nicht extra importiert werden muessen):
Code: Alles auswählen
>>> [ f for f in dir(__builtins__) if 'a' <= f[0] <= 'z' ]
['abs', 'all', 'any', 'apply', 'basestring', 'bool', 'buffer', 'callable',
'chr', 'classmethod', 'cmp', 'coerce', 'compile', 'complex',
'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate',
'eval', 'execfile', 'exit', 'file', 'filter', 'float', 'frozenset', 'getattr',
'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'intern',
'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'long',
'map', 'max', 'min', 'object', 'oct', 'open', 'ord', 'pow', 'property',
'quit', 'range', 'raw_input', 'reduce', 'reload', 'repr', 'reversed',
'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum',
'super', 'tuple', 'type', 'unichr', 'unicode', 'vars', 'xrange', 'zip']
Dann kannst Du jeden Eintrag abfragen:
>>> help(zip)
Help on built-in function zip in module __builtin__:
zip(...)
zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
Return a list of tuples, where each tuple contains the i-th element
from each of the argument sequences. The returned list is truncated
in length to the length of the shortest argument sequence.
Natuerlich gibt es auch eine Unmenge von Modulen... Benutze einfach das Programm 'pydoc', das Teil der Python-Installation ist. Oder, innerhalb der Python-Shell einfach 'help()' aufrufen, gefolgt von 'modules' um eine lange Liste lokal installierter Module zu bekommen.
Re: Übersicht der verfügbaren Funktionen in Python
Verfasst: Sonntag 2. November 2008, 20:41
von DasIch
farid hat geschrieben:Oder, innerhalb der Python-Shell einfach 'help()' aufrufen, gefolgt von 'modules' um eine lange Liste lokal installierter Module zu bekommen.
Das führt bei mir zu einem Segmentation Fault(Python 2.6).
Mit sys.modules bekommt man eine dict mit den Namen aller Module und einer Referenz darauf.
Verfasst: Montag 3. November 2008, 08:15
von BlackJack
@DasIch: Dann wird sich wohl irgendein Modul, wahrscheinlich ein C-Modul von einem Drittanbieter, nicht importieren lassen. Oder Du hast einen Bug in Python 2.6 gefunden.
Re: Übersicht der verfügbaren Funktionen in Python
Verfasst: Montag 3. November 2008, 10:16
von BlackVivi
DasIch hat geschrieben:farid hat geschrieben:Oder, innerhalb der Python-Shell einfach 'help()' aufrufen, gefolgt von 'modules' um eine lange Liste lokal installierter Module zu bekommen.
Das führt bei mir zu einem Segmentation Fault(Python 2.6).
Bei mir aber auch =/ Sehr komisch. Hab aber auch einige Module installiert, muss ich sagen... Aber ansonsten geht alles.
Re: Übersicht der verfügbaren Funktionen in Python
Verfasst: Montag 3. November 2008, 21:46
von BastiFantasti
farid hat geschrieben:Hier ist eine Liste von Builtins (Funktionen bzw. Klassen, die immer zur Verfuegung stehen und nicht extra importiert werden muessen):
Code: Alles auswählen
>>> [ f for f in dir(__builtins__) if 'a' <= f[0] <= 'z' ]
['abs', 'all', 'any', 'apply', 'basestring', 'bool', 'buffer', 'callable',
'chr', 'classmethod', 'cmp', 'coerce', 'compile', 'complex',
'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate',
'eval', 'execfile', 'exit', 'file', 'filter', 'float', 'frozenset', 'getattr',
'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'intern',
'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'long',
'map', 'max', 'min', 'object', 'oct', 'open', 'ord', 'pow', 'property',
'quit', 'range', 'raw_input', 'reduce', 'reload', 'repr', 'reversed',
'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum',
'super', 'tuple', 'type', 'unichr', 'unicode', 'vars', 'xrange', 'zip']
Dann kannst Du jeden Eintrag abfragen:
>>> help(zip)
Help on built-in function zip in module __builtin__:
zip(...)
zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
Return a list of tuples, where each tuple contains the i-th element
from each of the argument sequences. The returned list is truncated
in length to the length of the shortest argument sequence.
Natuerlich gibt es auch eine Unmenge von Modulen... Benutze einfach das Programm 'pydoc', das Teil der Python-Installation ist. Oder, innerhalb der Python-Shell einfach 'help()' aufrufen, gefolgt von 'modules' um eine lange Liste lokal installierter Module zu bekommen.
Hallo,
danke für die zahlreichen Tipps. Ich werd mir die genannten Links und Programme mal näher anschauen.
Gruß
Basti
Verfasst: Montag 3. November 2008, 22:59
von DasIch
BlackJack hat geschrieben:@DasIch: Dann wird sich wohl irgendein Modul, wahrscheinlich ein C-Modul von einem Drittanbieter, nicht importieren lassen. Oder Du hast einen Bug in Python 2.6 gefunden.
Wie finde ich dass am einfachsten raus? Die
Ausgabe der Module scheint keine bestimmte Reihenfolge zu haben dafür gibt es eine ganze Menge an DeprecationWarnings.
Verfasst: Montag 3. November 2008, 23:35
von lunar
Alle C-Module sukzessive deinstallieren, bis der Fehler verschwindet?
Verfasst: Montag 3. November 2008, 23:55
von BlackJack
Python mit ``strace`` starten ist vielleicht etwas weniger aufwändig.

Verfasst: Montag 3. November 2008, 23:58
von lunar
BlackJack hat geschrieben:Python mit ``strace`` starten ist vielleicht etwas weniger aufwändig.

Allerdings ist diese Komfort den Linux-Nutzern vorbehalten

Verfasst: Dienstag 4. November 2008, 00:18
von veers
Python im Debugger starten und nachsehen wo es knallt?
Verfasst: Dienstag 4. November 2008, 00:27
von lunar
Das wird bei externen Modulen nicht funktionieren, da die nicht unbedingt mit Debugging-Informationen übersetzt wurden. Außerdem hat ein Windows-Python-Entwickler nicht notwendigerweise Visual Studio zum Debugging installiert

Verfasst: Dienstag 4. November 2008, 16:19
von DasIch
Ich habs mal mit
strace ausprobiert, sieht nach einem Bug in Numeric aus.
Verfasst: Dienstag 4. November 2008, 16:34
von HWK
Solltest Du statt Numeric nicht sowieso besser NumPy verwenden?
MfG
HWK
Verfasst: Dienstag 4. November 2008, 17:54
von DasIch
HWK hat geschrieben:Solltest Du statt Numeric nicht sowieso besser NumPy verwenden?
Keine Ahnung, ich benutze keines von beiden. Wird wahrscheinlich als Abhängigkeit von irgendetwas installiert worden sein.