Python

Z CHWiki

Přejít na: navigace, hledání


Obsah

[editovat] Historie

Python začal psát Guido van Rossum na Stichting Mathematisch Centrum. Od té doby byl chvíli open source, chvíli proprietární apod. V současnosti je opět open-source. Již brzy bude vydána přelomová verze 3.0.

[editovat] Druh jazyka

Interpretovaný, vysokoúrovňový, s objektově orientovaným programováním a dynamickými typy.

[editovat] Použití

Spíše pro aplikace než systémové záležitosti, je vhodný i pro různé malé nástroje (konfigurační apod.) Dále se často používá jako skriptovací jazyk pro větší programy.

[editovat] Programy v něm napsané

  • Distribuovaný systém správy verzí Mercurial (www.selenic.com/mercurial)
  • Python je hodně využíván Googlem
  • Tuším že se používá i na www.seznam.cz
  • Free modelovací program Blender (http://www.blender3d.org/) používá Python jako svůj skriptovací jazyk,
  • Webový framework Django

[editovat] Přenositelnost

Téměř 100%. Pokud nevyužíváte knihovny specifické pro platformu (což u Pythonu je nutné jen málokdy), není problém program spustit na všech platformách, pro které existuje interpretr. Mezi ně patří dokonce i mobilní platforma Symbian S60.

[editovat] Co nabízí

  • Automatická správa paměti
  • objektově orientované programování (i když ne do posledního puntíku jako třeba Smalltalk).
  • Vícenásobná dědičnost.
  • Vestavěná podpora výjimek.
  • Dá se rozšířit pomocí modulů napsaných v C a může být použít jako skriptovací jazyk z programů v C/C++.
  • Vlastní dokumentační systém pro dokumentaci přímo ve zdrojovém kódu.
  • S funkcemi lze pracovat jako s objekty, takže lze používat přístupy z funkcionálního programování, podporuje lambda výrazy.
  • Anotace funkcí pro modifikaci jejich chování, ve verzi 3 i anotaci tříd.
  • Generátory.
  • Přetěžování operátorů.

[editovat] Knihovny

  • Python má poměrně rozsáhlou vlastní knihovnu pro základní, ale i některé pokročilejší operace (obsahuje např. i HTTP server).
  • Další knihovny pro práci s OpenGL, Cairo, ...
  • Vazby na oblíbené GUI frameworky jako například wxWidgets, pyGTK, ...
  • Mnoho vědeckých aplikací, numpy, scipy, sympy, matplotlib

[editovat] Příklady

Klasika

 def hello():
   "This method greets the user politely."
   print "Hello world"
 

Ukázka list comprehension a operátoru pro vyseknutí části řetězce/pole

 self.stored_succs = [SegmentNode.create(x) for x in data if self.sequence[-SAME_LEN:] == x[:SAME_LEN]]