Inhaltsverzeichnis[Anzeigen]

 

 

 

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
    PythonEssentialReferenceSmall.jpg
    • 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
    LearningPythonSmall.jpg
    • sehr gutes Tutorial, das weniger Programmierkenntnisse als Python Essential Reference voraussetzt
  • Core Python Programming von Wesley J. Chun
    CorePythonProgramming.jpg
    • umfassendes Grundlagenbuch
    • geht auch auf fortgeschrittene Konzepte ein

Praxis

  • Python Cookbook von Alex Martelli und David Ascher
    PythonCookbookSmall.jpeg
    • 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
    DiveIntoPython.jpg
    • 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
    TextProcessingInPython.gif
    • 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
    PythonWebProgramming.jpg
    • How to build web systems in Python : ( Grundlagen, Datenbanken, XML Verarbeitung und Web Applikation mit Python )
  • Foundations of Python Network Programming von John Goerzen
    foundation-python-net-prog.jpg
    • 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
    ObjektOrientierteSoftwareentwicklung.jpeg
    • 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
    DesignPattern.jpeg
    • 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.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.

 

Python Quick Reference Card

  • alles, was man über Python wissen sollte pdf

Guis

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
     

 

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

 


Mentoring

Stay Informed about my Mentoring

 

Rezensionen

Tutorial

Besucher

Heute 1872

Gestern 3725

Woche 7673

Monat 34990

Insgesamt 3887704

Aktuell sind 602 Gäste und keine Mitglieder online

Kubik-Rubik Joomla! Extensions

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode

Neuste Kommentare