Wissenswertes rund um Python
Dokumentation
built-in Dokumentation
Python wartet mit einem reichhaltigen Fundus an built-inDokumentation auf.
dir Funktion
- eignet sich als erste Suche in die Breite
- listet das Dictionary von Objekten - alles ist ein Objekt in Python - auf
>>> dir ([])
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__',
...
'reverse', 'sort']
>>> dir()
['__builtins__', '__doc__', '__name__']
>>> import sys
>>> dir ( sys )
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__', '__stdin__',
...
'stdin', 'stdout', 'version', 'version_info', 'warnoptions']
>>> dir (5)
['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__',
...
'__truediv__', '__xor__']
Docstring:
Jedem Objekt ist ein __doc__String zugeordnet, der zwei Funktionen erfüllt:
- durch Introspektion kann das Objekt nach seiner Dokumentation gefragt werden
- Strings, die am Anfang einer Objektdefinition stehen, werden automatisch als __doc__ Strings verwendet
- per Default ist der __doc__ Docstring leer
>>> class A:
... "Klasse A"
... def foo():
... "Methode foo"
... def bar():
... pass
...
>>> A.__doc__
'Klasse A'
>>> A.foo.__doc__
'Methode foo'
>>> A.bar.__doc__
>>> print sys.__doc__
This module provides access to some objects used or maintained by the
interpreter and to functions that interact strongly with the interpreter.
exit() -- exit the interpreter by raising SystemExit
....
getdlopenflags() -- returns flags to be used for dlopen() calls
getrefcount() -- return the reference count for an object (plus one :-)
getrecursionlimit() -- return the max recursion depth for the interpreter
setcheckinterval() -- control how often the interpreter checks for events
setdlopenflags() -- set the flags to be used for dlopen() calls
setprofile() -- set the global profiling function
setrecursionlimit() -- set the max recursion depth for the interpreter
settrace() -- set the global debug tracing function
>>> print sys.exit.__doc__
exit([status])
Exit the interpreter by raising SystemExit (status).
If the status is omitted or None, it defaults to zero (i.e., success).
If the status is numeric, it will be used as the system exit status.
If it is another kind of object, it will be printed and the system
exit status will be one (i.e., failure)
- durch den __doc__Docstring kann automatisch Dokumentation erzeugt werden
PyDoc
- help in der Interpreter Shell aufgerufen, erzeugt die Dokumentation in einer manpage ähnlichen Art
>>> import sys
>>> help ( sys )
Help on built-in module sys:
NAME
sys
FILE
(built-in)
DESCRIPTION
This module provides access to some objects used or maintained by the
interpreter and to functions that interact strongly with the interpreter.
Dynamic objects:
argv -- command line arguments; argv[0] is the script pathname if known
path -- module search path; path[0] is the script directory, else ''
modules -- dictionary of loaded modules
...
>>> help (sys.exit)
Help on built-in function exit:
exit(...)
exit([status])
Exit the interpreter by raising SystemExit (status).
If the status is omitted or None, it defaults to zero (i.e., success).
If the status is numeric, it will be used as the system exit status.
If it is another kind of object, it will be printed and the system
exit status will be one (i.e., failure).
Bücher
Die folgenden Bücher halte ich für sehr empfehlenswert.
Grundlagen
- Python Essential Reference von David M. Beazley
- sehr gutes, kompaktes Tutorial um mit C Kenntnissen Python zu lernen
- das Standardwerk bei science-computing
- mittlerweile existierte die 3-te Auflage
- Learning Python von Mark Lutz und David Ascher
- sehr gutes Tutorial, das weniger Programmierkenntnisse als Python Essential Reference voraussetzt
- Core Python Programming von Wesley J. Chun
- umfassendes Grundlagenbuch
- geht auch auf fortgeschrittene Konzepte ein
Praxis
- Python Cookbook von Alex Martelli und David Ascher
- bewährte Rezepte, um das tägliche Arbeiten mit Python zu erleichtern
- geht weit über das Anbieten von Lösungen hinaus, da die Rezepte entwickelt und diskutiert werden
- fokussiert weniger die Syntax von Python, sondern die Frage:
- Wie kann ich Python sinnvoll einsetzen?
- die Rezepte stammen aus dem Fundus Python Cookbook
- Dive Into Python von Mark Pilgrim
- ausgehend von einem sinnvollen Pythonscript, werden die Komponenten von Python erklärt
- Dive Into Python führt einen schnell in die Tiefen von Python
- dies Buch ist sowohl für den Einsteiger als Tutorial als auch für den Pythonkenner zur Vertiefung seiner Kenntnisse sehr empfehlenswert
- Dive Into Python gibts auch online http://www.diveintopython.org/toc/index.html
- Text Processing in Python von David Mertz
- Python als das Mittel der Wahl, um Text zu verarbeiten, steht bei David Mertz im Mittelpunkt
- als wichtigste Tools für das Textprozessieren erklärt er detailiert Strings, Regular Expressions und Parser
- David Mertz hat einen sehr kurzen und prägnanten, funktional orientieren Programmierstil
Web
- Python Web Programming von Steve Holden
- How to build web systems in Python : ( Grundlagen, Datenbanken, XML Verarbeitung und Web Applikation mit Python )
- Foundations of Python Network Programming von John Goerzen
- alles über Client Server Programmierung mit Python ( Grundlagen, Web Services, E-Mail Services, Protokolle, Frameworks und Multitasking )
Objektorientierte Programmierung
- Objektorientierte Softwareentwicklung - Analyse und Design mit der UML von Bernd Oesterreich
- sprachunabhängige, sehr gute Einführung in die objektorientierte Denkweise und deren Visualisierung mit Hilfe der Unified Modeling Language
- Design Patterns. Elements of Reusable Object-Oriented Software. von Erich Gamma, Richard Helm, Ralph E. Johnson und John Vlissides
- objektorientiertes Programmierung beschäftigt sich immer auch mit dem strukturieren und modellieren von Programmen
- dies Buch ist der Klassiker zum objektorientierten Entwurf von der Gang Of Four
Onlinequellen
python.org:
The Official Python Programming Language Website mit vielen interessanten Topics
- Python Community
- SIGs Special Interest Groups rund um Python
- Dokumentation
- Language Reference Manual von Guido van Rossum
- Das Tutorial von Guido van Rossum
- HOWTOs zu ausgewählten Themen
- IDLE Pythons built-in IDE
python.de
Informationen, Artikel, News und Links zu Python
Python Cookbook
- diese Seite ist eine hervorragende Quelle für Lösungen und Ideen rund um die Python Programmierung
- Editor in Chief ist David Ascher
- die bewährtesten der Rezepte finden sich ausführlich diskutiert in dem Buch Python Cookbook wieder
effbot.org
Eine von Fredrik Lundh initiierte Seite Rund um Python Stuff.
- http://effbot.org/zone: Artikel
- http://effbot.org/pyfaq: (A Semi-Official) Python FAQ Zone
- http://effbot.org/pytut: (An unofficial) Python Tutorial Zone
- http://effbot.org/pyref: (An Unofficial) Python Reference Wiki
Python Quick Reference Card
Guis
- Choose your GUI toolkit.: http://www.awaretek.com/toolkits.html
Entwicklungsumgebungen
- IDLE
- ist in der Standardinstallation dabei
- unterstützt kein Refaktoring
- Einführung
- Eric3
- sehr umfangreich
- setzt pyqt voraus
- hat eine Designer - sehr ähnlich dem qt-designer integriert - um qt Applikationen zu erstellen
- schreibe qt Applikationen mit Python
- screenshots
- Pydev
- Plugin für EclipseIDE
- sehr mächtig
- screenshots
Introduction
Get into Python ist eine interaktive Lernplattform mit integrierter REPL.
Styleguides
- The Zen of Python
>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those! - http://www.python.org/dev/peps/pep-0008/: Guido van Rossum Styleguide
Tools
- um alle referenzierten Module eines Programms zu finden, existiert die undokumentierte Bibliothek modulefinder
python <path to modulefinder.py> main.py
ergibt alle verwendeten Module einer Applikation
Python Executable erzeugen
- py2exe für Windows
- pyinstaller als Weiterentwicklung von py2exe für Linux, Irix und Windows
- unter Binding Main Script and Modules into One Executable on Unixfindet man eine einfache Anleitung zum Packen mehrerer Python-Module in eine (ausführbare) Datei unter Unix, die aus folgenden Punkten besteht
- erzeuge aus allen Python Dateien eine Zipdatei
- füge einen Aufrufwrapper zu der Zipdatei hinzu
- setzte die Datei auf ausführbar.
- einen schönen Überblick liefert python to executable tools
Weiterlesen...