Übersicht der verfügbaren Funktionen in Python

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
BastiFantasti
User
Beiträge: 7
Registriert: Dienstag 28. Oktober 2008, 11:32

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
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

docs.python.org
farid
User
Beiträge: 95
Registriert: Mittwoch 8. Oktober 2008, 15:37

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.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

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.
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.
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

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.
BastiFantasti
User
Beiträge: 7
Registriert: Dienstag 28. Oktober 2008, 11:32

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
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

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.
lunar

Alle C-Module sukzessive deinstallieren, bis der Fehler verschwindet?
BlackJack

Python mit ``strace`` starten ist vielleicht etwas weniger aufwändig. :-)
lunar

BlackJack hat geschrieben:Python mit ``strace`` starten ist vielleicht etwas weniger aufwändig. :-)
Allerdings ist diese Komfort den Linux-Nutzern vorbehalten ;)
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Python im Debugger starten und nachsehen wo es knallt?
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
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 ;)
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Ich habs mal mit strace ausprobiert, sieht nach einem Bug in Numeric aus.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Solltest Du statt Numeric nicht sowieso besser NumPy verwenden?
MfG
HWK
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

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.
Antworten