Pythonschlange (Programmiersprache)

Pythonschlange ist eine Mehrzweckprogrammiersprache auf höchster Ebene, deren Designphilosophie Codelesbarkeit betont. Pythonschlange behauptet, "bemerkenswerte Macht mit der sehr klaren Syntax" zu verbinden, und seine Standardbibliothek ist groß und umfassend.

Pythonschlange unterstützt vielfache Programmierparadigmen, in erster Linie aber nicht beschränkt auf den objektorientierten, das befehlende und, in einem kleineren Ausmaß, funktionellen Programmierstilen. Es zeigt ein völlig dynamisches Typ-System und automatisches Speichermanagement, das diesem von Schema, Rubin, Perl und Tcl ähnlich ist. Wie andere dynamische Sprachen wird Pythonschlange häufig als eine scripting Sprache verwendet, aber wird auch in einer breiten Reihe von non-scripting Zusammenhängen verwendet. Mit Drittwerkzeugen kann Pythonschlange-Code in eigenständige rechtskräftige Programme paketiert werden. Pythonschlange-Dolmetscher sind für viele Betriebssysteme verfügbar.

Die Bezugsdurchführung der Pythonschlange (CPython) ist freie und offene Quellsoftware und hat ein gemeinschaftsbasiertes Entwicklungsmodell, wie fast alle seine alternativen Durchführungen tun. CPython wird durch das gemeinnützige Pythonschlange-Softwarefundament geführt.

Geschichte

Pythonschlange wurde gegen Ende der 1980er Jahre konzipiert, und seine Durchführung wurde im Dezember 1989 von Guido van Rossum an CWI in den Niederlanden als ein Nachfolger der Abc-Sprache (selbst begeistert durch SETL) fähig zum Ausnahme-Berühren und Verbinden mit der Amöbe Betriebssystem angefangen. Van Rossum ist der Hauptautor der Pythonschlange und seine ständige Hauptrolle im Entscheiden, dass die Richtung der Pythonschlange im Titel widerspiegelt wird, der ihm von der Pythonschlange-Gemeinschaft, Wohltätigen Diktator Für das Leben (BDFL) gegeben ist.

Pythonschlange 2.0 wurde am 16. Oktober 2000, mit vielen neuen Haupteigenschaften einschließlich eines vollen Müllmannes und Unterstützung für Unicode befreit. Jedoch war die wichtigste Änderung zum Entwicklungsprozess selbst mit einer Verschiebung zu einem durchsichtigeren und gemeinschaftsunterstützten Prozess. Pythonschlange 3.0 (auch genannt Pythonschlange 3000 oder py3k), eine größere, umgekehrt unvereinbare Ausgabe, wurde am 3. Dezember 2008 nach einem langen Zeitraum der Prüfung befreit. Viele seiner Haupteigenschaften sind backported zur umgekehrt vereinbaren Pythonschlange 2.6 und 2.7 gewesen. Pythonschlange ist einer TIOBE Programmiersprache des Jahr-Preises zweimal zuerkannt worden (2007, 2010), der der Sprache mit dem größten Wachstum in der Beliebtheit über den Kurs eines Jahres, wie gemessen, durch den TIOBE Index gegeben wird.

Programmierung der Philosophie

Pythonschlange ist eine Mehrparadigma-Programmiersprache. Anstatt Programmierer zu zwingen, einen besonderen Stil der Programmierung anzunehmen, erlaubt es mehrere Stile: Objektorientierte Programmierung und strukturierte Programmierung werden völlig unterstützt, und es gibt mehrere Spracheigenschaften, die funktionelle Programmierung und Aspekt-orientierte Programmierung (einschließlich durch metaprogramming und durch magische Methoden) unterstützen. Viele andere Paradigmen werden mit Erweiterungen, wie pyDBC und Verträge für die Pythonschlange unterstützt, die Design durch den Vertrag erlauben.

Pythonschlange verwendet das dynamische Schreiben und eine Kombination des Bezugszählens und eines Zyklus entdeckenden Müllmannes für das Speichermanagement. Eine wichtige Eigenschaft der Pythonschlange ist dynamische Namenentschlossenheit (spät bindend), der Methode und Variablennamen während der Programm-Ausführung bindet.

Anstatt zu verlangen, dass die ganze gewünschte Funktionalität in den Kern der Sprache eingebaut wurde, wurde Pythonschlange entworfen, um hoch ausziehbar zu sein. Neue eingebaute Module können in C, C ++ oder Cython leicht geschrieben werden. Pythonschlange kann auch als eine Erweiterungssprache für vorhandene Module und Anwendungen verwendet werden, die eine programmierbare Schnittstelle brauchen. Dieses Design einer kleinen Kernsprache mit einer großen Standardbibliothek und einem leicht ausziehbaren Dolmetscher war von Van Rossum vom wirklichen Anfang wegen seiner Frustrationen mit dem Abc beabsichtigt (der für das Gegenteil mindset eingetreten ist).

Das Design der Pythonschlange bietet nur beschränkte Unterstützung für die funktionelle Programmierung in der Lispeln-Tradition an. Jedoch stellt die Designphilosophie der Pythonschlange bedeutende Ähnlichkeiten zu denjenigen von minimalistic Sprachen der Lispeln-Familie wie Schema aus. Die Sprache hat Karte , nehmen Sie und Filter Funktionen ab, und die Listenverständnisse, die in der Pythonschlange 2.0 hinzugefügt sind, sind mit Verständnissen für Wörterbücher und Sätze, sowie Generator-Ausdrücke seitdem erweitert worden. Die Standardbibliothek hat zwei Module (itertools und functools), die funktionelle Werkzeuge durchführen, die von Haskell und Standard ML geliehen sind.

Während

sie Wahl im Codieren der Methodik anbietet, weist die Pythonschlange-Philosophie überschwängliche Syntax, solcher als in Perl für eine spärlichere, weniger angefüllte Grammatik zurück. Die Entwickler der Pythonschlange fördern ausdrücklich eine besondere "Kultur" oder Ideologie, die darauf gestützt ist, was sie wollen, dass die Sprache ist, Sprachformen bevorzugend, die sie als "schön", "ausführlich" und "einfach" sehen. Wie Alex Martelli in seinem Pythonschlange-Kochbuch gesagt hat (2. Hrsg., p. 230): "Etwas als klug zu beschreiben, wird als kein Kompliment in der Pythonschlange-Kultur betrachtet." Die Philosophie der Pythonschlange weist Perl zurück "es gibt mehr als eine Weise zu tun es" nähert sich dem Sprachdesign dafür "es sollte ein — und vorzugsweise nur einen — offensichtliche Weise geben, es zu tun".

Die Entwickler der Pythonschlange enthalten sich Frühoptimierung, und außerdem, weisen Flecke zu nichtkritischen Teilen von CPython zurück, der eine Randzunahme in der Geschwindigkeit auf Kosten der Klarheit anbieten würde. Wenn Geschwindigkeit wichtig ist, neigen Pythonschlange-Programmierer dazu zu versuchen, einen JIT Bearbeiter wie Psyco zu verwenden oder eine alternative Sprachdurchführung wie PyPy zu verwenden. Wenn reiner Pythonschlange-Code nicht ist, können schnelle genug, zeitkritische Funktionen in "näherem an den" Metallsprachen wie C, oder durch das Übersetzen (ein Dialekt) des Pythonschlange-Codes zu C-Codeverwenden-Werkzeugen wie Cython umgeschrieben werden.

Die Kernphilosophie der Sprache wird durch das Dokument "PEP 20 (Das Zen der Pythonschlange)" zusammengefasst.

Name und Sprachneuschöpfung

Eine wichtige Absicht der Entwickler von Python macht Spaß von Python zu verwenden. Das wird im Ursprung des Namens widerspiegelt (ist auf die Fernsehreihe der Fliegende Zirkus von Monty Python zurückzuführen gewesen), in der üblichen Praxis, Verweisungen von Monty Python im Beispiel-Code, und in einer gelegentlich spielerischen Annäherung an Tutorenkurse und Nachschlagewerke zu verwenden. Zum Beispiel sind die metasyntactic in der Literatur von Python häufig verwendeten Variablen spam und Eier, statt des traditionellen foo und der Bar.

Eine allgemeine Sprachneuschöpfung in der Pythonschlange-Gemeinschaft ist pythonic, der eine breite Reihe von mit dem Programm-Stil verbundenen Bedeutungen haben kann. Zu sagen, dass Code pythonic ist, soll sagen, dass es Pythonschlange-Idiome verwendet so, dass es natürlich ist oder Geläufigkeit auf der Sprache zeigt. Ebenfalls, von einer Schnittstelle oder Spracheigenschaft zu sagen, dass es pythonic ist, soll sagen, dass es gut mit Pythonschlange-Idiomen arbeitet, dass sein Gebrauch gut mit dem Rest der Sprache ineinander greift.

Im Gegensatz ist ein Zeichen des Unpythonic-Codes, dass er versucht, C ++ zu schreiben (oder Lispeln, Perl oder Java) Code in der Pythonschlange — d. h. stellt eine raue Abschrift aber nicht eine idiomatische Übersetzung von Formen aus einer anderen Sprache zur Verfügung. Das Konzept von pythonicity wird zur Minimalist-Philosophie der Pythonschlange der Lesbarkeit und des Vermeidens dicht gebunden "es gibt mehr als eine Weise zu tun es" nähert sich. Unlesbarer Code oder unverständliche Idiome sind unpythonic.

Benutzer und Bewunderer der Pythonschlange — am meisten besonders diejenigen, die betrachtet sind, kenntnisreich oder erfahren — werden häufig Pythonists, Pythonistas und Pythoneers genannt.

Präfix-Py kann verwendet werden, um zu zeigen, dass etwas mit der Pythonschlange verbunden ist. Beispiele des Gebrauches dieses Präfixes in Namen von Pythonschlange-Anwendungen oder Bibliotheken schließen Pygame ein, eine Schwergängigkeit von SDL zur Pythonschlange (hat allgemein gepflegt, Spiele zu schaffen); PyS60, eine Durchführung für Symbian S60 Betriebssystem; PyQt und PyGTK, die Qt und GTK beziehungsweise zur Pythonschlange binden; und PyPy, eine in der Pythonschlange geschriebene Pythonschlange-Durchführung. Das Präfix wird auch außerhalb des Namengebens von Softwarepaketen verwendet: Die Hauptpythonschlange-Konferenz wird PyCon genannt.

Gebrauch

Pythonschlange wird häufig als eine scripting Sprache für Webanwendungen z.B über mod_wsgi für den Apachen-Webserver verwendet. Mit der Webserver-Tor-Schnittstelle ist eine Standard-API entwickelt worden, um diese Anwendungen zu erleichtern. Das Webanwendungsfachwerk wie Django, Pylonen, TurboGears, web2py, Tornado, Flask und Zope unterstützt Entwickler im Design und der Wartung von komplizierten Anwendungen. Bibliotheken wie NumPy, SciPy und Matplotlib erlauben Pythonschlange, effektiv in der wissenschaftlichen Computerwissenschaft verwendet zu werden.

Pythonschlange ist in mehreren Softwareprodukten als eine scripting Sprache, einschließlich in der begrenzten Element-Methode-Software wie Abaqus, 3D-Zeichentrickfilm-Pakete wie Mixer, Kino 4D, Lightwave, Houdini, Maya-Sprache, modo, MotionBuilder, Softimage, die Seheffekten-Schriftsetzer-Kernwaffe und 2. Bildaufbereitungsprogramme wie GIMP, Inkscape, Scribus und Paint Shop Pro erfolgreich eingebettet worden. GNU GDB verwendet Pythonschlange als ein hübscher Drucker, um komplizierte Strukturen wie C ++ Behälter zu zeigen. ESRI fördert jetzt Pythonschlange als die beste Wahl, um Schriften in ArcGIS zu schreiben. Es ist sogar in mehreren Videospielen verwendet worden, und ist als zuerst der drei verfügbaren Programmiersprachen im Google App Motor, die anderen zwei angenommen worden, die Java sind, und Geht.

Dank, eine scripting Sprache mit der Modul-Architektur, der Syntax-Einfachheit und den reichen in einer Prozession gehenden Textwerkzeugen zu sein, wird Pythonschlange häufig für Aufgaben der Verarbeitung der natürlichen Sprache verwendet. Pythonschlange ist auch in Aufgaben der Künstlichen Intelligenz verwendet worden.

Für viele Betriebssysteme ist Pythonschlange ein Standardbestandteil; es schifft sich mit dem grössten Teil des Vertriebs von Linux, FreeBSD, NetBSD, OpenBSD und mit OS X ein und kann vom Terminal verwendet werden. Mehrerer Vertrieb von Linux verwendet in der Pythonschlange geschriebene Monteure: Ubuntu verwendet den Allgegenwart-Monteur, während Rote Hat Linux und Fedora den Anakonda-Monteur verwenden. Gentoo Linux verwendet Pythonschlange in seinem Paket-Verwaltungssystem, Transport und dem Standardwerkzeug, um darauf zuzugreifen, zu erscheinen. Pardus verwendet es für die Regierung und während des Systemstiefels.

Pythonschlange hat auch umfassenden Gebrauch in der Informationssicherheitsindustrie einschließlich der Großtat-Entwicklung gesehen.

Unter den Benutzern der Pythonschlange sind YouTube und der ursprüngliche Kunde von BitTorrent. Große Organisationen, die von der Pythonschlange Gebrauch machen, schließen Google, Yahoo ein! CERN, NASA, ILM und ITA. Der grösste Teil der Zuckersoftware für Einen Laptop pro Kind XO, der jetzt an Zuckerlaboratorien entwickelt ist, wird in der Pythonschlange geschrieben.

Zusätzlich zu Standardtischpythonschlange-IDEN gibt es auch Browser-basierte IDEN, wie NCLab und Sage, der beabsichtigt ist, um Wissenschaft und mathezusammenhängende Pythonschlange-Programme zu entwickeln.

, Pythonschlange reiht sich an der Position 8 im TIOBE Programmierender Gemeinschaftsindex auf.

Syntax und Semantik

Pythonschlange ist beabsichtigt, um eine hoch lesbare Sprache zu sein. Es wird entworfen, um ein ordentliches Sehlay-Out oft mit englischen Schlüsselwörtern zu haben, wo andere Sprachen Zeichensetzung verwenden. Pythonschlange verlangt weniger Textbaustein als traditionelle offenbar getippte strukturierte Sprachen wie C oder Pascal, und hat eine kleinere Zahl von syntaktischen Ausnahmen und speziellen Fällen als jeder von diesen.

Für ein Detaillieren der Unterschiede zwischen 2.x und 3.x Versionen, sieh Geschichte der Pythonschlange.

Die Einfachheit der Pythonschlange wird durch seine Version des Klassikers "Hallo" Weltprogramm demonstriert:

Druck ("Hallo Welt")

</syntaxhighlight>

Einrückung

Pythonschlange verwendet whitespace Einrückung, aber nicht lockige geschweifte Klammern oder Schlüsselwörter, um Blöcke abzugrenzen; eine Eigenschaft hat auch die Abseitsregel genannt. Eine Zunahme in der Einrückung kommt nach bestimmten Behauptungen; eine Abnahme in der Einrückung bedeutet das Ende des aktuellen Blocks.

Behauptungen und Kontrollfluss

Die Behauptungen der Pythonschlange schließen (unter anderen) ein:

  • Die Behauptung, die bedingt einen Block des Codes, zusammen mit und (eine Zusammenziehung sonst - wenn) durchführt.
  • Die Behauptung, die über einen Iterable-Gegenstand wiederholt, jedes Element zu einer lokalen Variable für den Gebrauch durch den beigefügten Block gewinnend.
  • Die Behauptung, die einen Block des Codes so lange seine Bedingung durchführt, ist wahr.
  • Die Behauptung, die in seinem beigefügten Codeblock erhobenen Ausnahmen erlaubt, gefangen und durch Klauseln behandelt zu werden; es stellt auch sicher, dass der Reinigungscode in einem Block immer unabhängig davon geführt wird, wie der Block abgeht.
  • Die Behauptung, die einen Block des Codes durchführt und seinen lokalen namespace einer Klasse für den Gebrauch in der objektorientierten Programmierung beifügt.
  • Die Behauptung, die eine Funktion oder Methode definiert.
  • Die Behauptung (von der Pythonschlange 2.5), der einen Codeblock innerhalb eines Zusammenhang-Betriebsleiters einschließt (zum Beispiel ein Schloss bevor erwerbend, wird der Block des Codes, und Ausgabe des Schlosses später geführt).
  • Die Behauptung, die als ein NOP dient und im Platz eines Codeblocks verwendet werden kann.
  • Die Behauptung, die während des Beseitigens verwendet ist, um für Bedingungen zu überprüfen, die gelten sollten.
  • Die Behauptung, die einen Wert von einer Generator-Funktion zurückgibt. (Von der Pythonschlange 2.5, ist auch ein Maschinenbediener. Diese Form wird verwendet, um Koroutinen durchzuführen - sieh unten.)

Jede Behauptung hat seine eigene Semantik: Zum Beispiel führt die Behauptung seinen Block sofort verschieden von den meisten anderen Behauptungen nicht durch.

Pythonschlange unterstützt erstklassige Verlängerungen nicht, und gemäß Guido van Rossum wird sie nie. Jedoch wird die bessere Unterstützung für die einer Koroutine ähnliche Funktionalität in 2.5, durch das Verlängern der Generatoren der Pythonschlange zur Verfügung gestellt. Vor 2.5 waren Generatoren fauler iterators; Information wurde Einrichtungs-aus dem Generator passiert. Bezüglich der Pythonschlange 2.5 ist es möglich, Information zurück in eine Generator-Funktion zu passieren.

Ausdrücke

Pythonschlange-Ausdrücke sind Sprachen wie C und Java ähnlich.

  • In der Pythonschlange 2 tut der Maschinenbediener auf ganzen Zahlen Abteilung der ganzen Zahl: Es stutzt das Ergebnis zu einer ganzen Zahl. Die Schwimmpunkt-Abteilung auf ganzen Zahlen kann durch das Umwandeln von einer der ganzen Zahlen zu einer Hin- und Herbewegung (z.B) erreicht werden.. In der Pythonschlange 3 ist das Ergebnis dessen immer ein Schwimmpunkt-Wert. Dieses Verhalten kann in der Pythonschlange 2.2 + das Verwenden ermöglicht werden. Sowohl in der Pythonschlange 2.2 + als auch in Pythonschlange 3, kann verwendet werden, um Abteilung der ganzen Zahl zu tun.
  • In der Pythonschlange, vergleicht sich durch den Wert im Gegensatz zu Java, wo es sich durch die Verweisung vergleicht. (Wertvergleiche in Java verwenden die Methode.) Der Maschinenbediener der Pythonschlange kann verwendet werden, um Gegenstand-Identität (Vergleich durch die Verweisung) zu vergleichen. Vergleiche können zum Beispiel gekettet werden
  • Pythonschlange verwendet die Wörter, für seine boolean Maschinenbediener aber nicht das symbolische, verwendet in C.
  • Pythonschlange hat einen Typ des Ausdrucks hat ein Listenverständnis genannt. Pythonschlange 2.4 verlängerte Listenverständnisse in einen allgemeineren Ausdruck hat einen Generator-Ausdruck genannt.
  • Anonyme Funktionen werden mit Lambda-Ausdrücken durchgeführt; jedoch werden diese beschränkt, in dem der Körper nur ein einzelner Ausdruck sein kann.
  • Bedingte Ausdrücke in der Pythonschlange werden als (verschieden in der Größenordnung von operands vom Maschinenbediener geschrieben, der für viele andere Sprachen üblich ist).
  • Pythonschlange macht eine Unterscheidung zwischen Listen und Tupeln. Listen werden als geschrieben, sind veränderlich, und können als die Schlüssel von Wörterbüchern nicht verwendet werden (Wörterbuch-Schlüssel müssen in der Pythonschlange unveränderlich sein). Tupel werden als geschrieben, sind unveränderlich und können so als die Schlüssel von Wörterbüchern verwendet werden, vorausgesetzt dass alle Elemente des Tupels unveränderlich sind. Die Parenthesen um das Tupel sind in einigen Zusammenhängen fakultativ. Tupel können auf der linken Seite eines gleichen Zeichens erscheinen; folglich mag eine Behauptung kann verwendet werden, um zwei Variablen zu tauschen.
  • Pythonschlange 2 hat einen "Schnur Format" Maschinenbediener. Das fungiert analog, um Schnuren in C zu formatieren, bewertet z.B dazu. In der Pythonschlange 3 wurde das durch die Methode der Klasse z.B ergänzt.
  • Pythonschlange hat verschiedene Arten von Schnur-Druckfehlern:
  • Schnuren durch einzelne oder doppelte Anführungszeichen abgegrenzt. Unterschiedlich in Schalen von Unix fungieren Perl und Sprachen von Perl-influenced, einzelne Anführungszeichen und doppelte Anführungszeichen ähnlich. Beide Arten der Schnur verwenden den umgekehrten Schrägstrich als ein Flucht-Charakter, und es gibt keine implizite Schnur-Interpolation solcher als.
  • Dreifach angesetzte Schnuren, die beginnen und mit einer Reihe von drei einzelnen oder doppelten Anführungszeichen enden. Sie können vielfache Linien abmessen und wie hier Dokumente in Schalen, Perl und Ruby fungieren.
  • Rohe Schnur-Varianten, die durch das Vorbefestigen der Schnur angezeigt sind, die mit wörtlich ist. Keine Flucht-Folgen werden interpretiert; folglich sind rohe Schnuren nützlich, wo wörtliche umgekehrte Schrägstriche, wie regelmäßige Ausdrücke und mit Windows artige Pfade üblich sind. Vergleichen Sie sich "-" in C#. zitierend
  • Pythonschlange hat Index und Scheibe-Ausdrücke auf Listen, angezeigt als, oder. Indizes sind bei Nullpunkteinstellung, und negative Indizes sind hinsichtlich des Endes. Scheiben nehmen Elemente vom Anfang-Index bis zu, aber nicht einschließlich, dem Halt-Index. Der dritte Scheibe-Parameter, genannt Schritt oder Schritt, erlaubt Elementen, ausgelassen und umgekehrt zu werden. Scheibe-Indizes können weggelassen werden, zum Beispiel gibt eine Kopie der kompletten Liste zurück. Jedes Element einer Scheibe ist eine seichte Kopie.

In der Pythonschlange wird eine Unterscheidung zwischen Ausdrücken und Behauptungen, im Gegensatz zu Sprachen wie Allgemeines Lispeln, Schema oder Ruby starr beachtet. Das führt zu einer Verdoppelung der Funktionalität z.B.

  • Listenverständnisse gegen - Schleifen
  • bedingte Ausdrücke gegen Blöcke
  • Gegen eingebaute Funktionen (in der Pythonschlange 2, ist eine Behauptung); der erstere ist für Ausdrücke, der Letztere ist für Behauptungen.

Behauptungen können kein Teil eines Ausdrucks und so Liste und andere Verständnisse sein, oder Lambda-Ausdrücke, ganzer, Ausdrücke seiend, können Behauptungen nicht enthalten. Ein besonderer Fall davon ist, dass ein Zuweisungsbefehl, der einen Teil des bedingten Ausdrucks einer bedingten Behauptung nicht bilden kann. Das ist im Vorteil, einen klassischen C Fehler zu vermeiden, einen Anweisungsmaschinenbediener mit einem Gleichheitsmaschinenbediener in Bedingungen zu verwechseln: Ist gültiger C-Code, aber verursacht einen Syntax-Fehler in der Pythonschlange.

Methoden

Methoden auf Gegenständen sind der Klasse des Gegenstands beigefügte Funktionen; die Syntax, ist für normale Methoden und Funktionen, syntaktischen Zucker dafür. Pythonschlange-Methoden haben einen ausführlichen Parameter, um auf Beispiel-Daten, im Gegensatz zum impliziten selbst auf einigen anderen objektorientierten Programmiersprachen (zum Beispiel, Java, C ++ oder Ruby) zuzugreifen.

Das Schreiben

Pythonschlange verwendet das Ente-Schreiben und hat Gegenstände getippt, aber Variablennamen ungetippt. Typ-Einschränkungen werden während der Übersetzung nicht überprüft; eher können Operationen auf einem Gegenstand scheitern, bedeutend, dass der gegebene Gegenstand nicht eines passenden Typs ist. Trotz, dynamisch getippt zu werden, wird Pythonschlange stark getippt, Operationen verbietend, die (zum Beispiel nicht bestimmt sind, eine Zahl zu einer Schnur hinzufügend), anstatt still zu versuchen, sie zu verstehen.

Pythonschlange erlaubt Programmierern, ihre eigenen Typen mit Klassen zu definieren, die meistenteils für die objektorientierte Programmierung verwendet werden. Neue Beispiele von Klassen werden durch das Benennen der Klasse (zum Beispiel, oder) gebaut, und die Klassen selbst sind Beispiele des metaclass (selbst ein Beispiel von sich), metaprogramming und Nachdenken erlaubend.

Vor der Version 3.0 hatte Pythonschlange zwei Arten von Klassen: "alt-artig" und "neu-artig". Alt-artige Klassen wurden in der Pythonschlange 3.0 beseitigt, alle Klassen neu-artig machend. In Versionen zwischen 2.2 und 3.0 konnten beide Arten von Klassen verwendet werden. Die Syntax von beiden Stilen ist dasselbe, der Unterschied, der ist, ob die Klasse davon geerbt wird, direkt oder indirekt (alle neu-artigen Klassen erben davon und sind Beispiele).

Hier ist eine Zusammenfassung der Pythonschlange 3 eingebaute Typen:

Mathematik

Im Vergleich mit einigen Programmiersprachen wird Abteilung der ganzen Zahl zur Runde zu minus die Unendlichkeit definiert. Deshalb ist 2, aber ist 3. Das ist gleichförmig und konsequent: Zum Beispiel bedeutet es, dass die Gleichung immer, wohingegen auf Sprachen wie C wahr ist. Es bedeutet auch, dass die Gleichung sowohl für positive als auch für negative Werte dessen gültig ist. Jedoch bedeutet das Aufrechterhalten der Gültigkeit dieser Gleichung, dass, während das Ergebnis dessen, wie erwartet, im halb offenen Zwischenraum [0, b ist), wo eine positive ganze Zahl ist, es im Zwischenraum liegen muss (b, 0], wenn negativ ist.

Pythonschlange stellt eine Funktion zur Verfügung, um Hin- und Herbewegungen zu ganzen Zahlen rund zu machen. Versionen vor 3 Gebrauch herum weg von der Null: Ist 1.0, ist-1.0. Pythonschlange 3 Gebrauch-Runde-zu-gleich: Ist 2.0, ist 2.0. Der Typ/Klasse im Modul (seit der Version 2.4) stellt genaue numerische Darstellung und mehrere sich rundende Weisen zur Verfügung.

Pythonschlange erlaubt boolean Ausdrücke mit vielfachen Gleichheitsbeziehungen gewissermaßen, der mit dem allgemeinen Gebrauch in der Mathematik im Einklang stehend ist. Zum Beispiel, der Ausdruck

Durchführungen

CPython

Die Hauptströmungspythonschlange-Durchführung, genannt CPython, wird in C das Entsprechen dem C89 Standard geschrieben. CPython kompiliert Pythonschlange-Programme ins Zwischenglied bytecode, die dann durch die virtuelle Maschine durchgeführt werden. Es wird mit einer großen Standardbibliothek verteilt, die in einer Mischung von C und Pythonschlange geschrieben ist. CPython Schiffe in Versionen für viele Plattformen, einschließlich Windows von Microsoft und modernster Unix ähnlicher Systeme. CPython war von fast seiner wirklichen Vorstellung beabsichtigt, um Quer-Plattform zu sein; sein Gebrauch und Entwicklung auf esoterischen Plattformen wie Amöbe, neben herkömmlicheren wie Unix und Mac OS, haben in dieser Beziehung außerordentlich geholfen.

Stackless Pythonschlange ist eine bedeutende Gabel von CPython, der Mikrofäden durchführt; es verwendet den C Speicherstapel nicht. Wie man erwarten kann, führt es auf ungefähr denselben Plattformen das CPython-Läufe darauf.

Google hat ein Projekt genannt die Unbeladene Schwalbe 2009 mit den Zielen angefangen, die Geschwindigkeit des Pythonschlange-Dolmetschers vor 5mal durch das Verwenden des LLVM und die Besserung seiner Nebenläufigkeitsfähigkeit zu vergrößern, zu Tausenden von Kernen zu klettern. Später hat das Projekt die Unterstützung von Google und seine Hauptentwickler verloren., das Projekt hat sein Ziel nicht erreicht; der modifizierte Dolmetscher ist nur ungefähr 2mal schneller.

Alternative Durchführungen

Jython kompiliert das Pythonschlange-Programm in den javanischen Byte-Code, der dann durch jedes Java Virtuelle Maschinendurchführung durchgeführt werden kann. Das ermöglicht auch den Gebrauch von javanischen Klassenbibliotheksfunktionen aus dem Pythonschlange-Programm. IronPython folgt einer ähnlichen Annäherung, um Pythonschlange-Programme auf der.NET Durchlaufzeit der Gemeinsamen Sprache zu führen. PyPy ist eine schnelle Selbstbewirtungsdurchführung der Pythonschlange, die in der Pythonschlange geschrieben ist, die Produktion mehrere Typen von bytecode, Gegenstand-Code und Zwischensprachen kann. Dort auch bestehen Bearbeiter in Gegenstand-Sprachen auf höchster Ebene, entweder mit der uneingeschränkten Pythonschlange, einer eingeschränkten Teilmenge der Pythonschlange oder mit einer Sprache, die der Pythonschlange als die Quellsprache ähnlich ist. PyPy ist dieses Typs, RPython in mehrere Sprachen kompilierend; andere Beispiele schließen das Schlafanzüge-Kompilieren zu JavaScript ein; das Hütte-Hautkompilieren zu C ++; und das Kompilieren von Cython und Pyrex zu C.

2005 hat Nokia einen Pythonschlange-Dolmetscher für die Reihe 60 Mobiltelefone genannt PyS60 befreit. Es schließt viele der Module von den CPython Durchführungen und einiger zusätzlicher Module für die Integration mit Symbian Betriebssystem ein. Dieses Projekt ist aktuell behalten worden, um auf allen Varianten der S60 Plattform zu laufen, und es gibt mehrere verfügbare Drittmodule. Der Nokia N900 unterstützt auch Pythonschlange mit GTK Produkt-Bibliotheken mit der Eigenschaft, dass Programme sowohl geschrieben und auf dem Gerät selbst geführt werden können. Es gibt auch einen Pythonschlange-Dolmetscher für Geräte des Windows CE (einschließlich des Taschen-PCs). Es wird PythonCE genannt. Es gibt zusätzliche Werkzeuge, die für die leichte Anwendung und GUI Entwicklung verfügbar sind.

PyMite hat virtuelle Maschine 2000 begonnen und hat seinen ersten öffentlichen Auftritt an PyCon 2003 gemacht. PyMite wurde in die Pythonschlange auf Beisteuern 2009 gefaltet. Die Pythonschlange auf einem Span (p14p) ist ein Projekt, eine reduzierte Pythonschlange virtuelle Maschine zu entwickeln (codenamed PyMite), der eine bedeutende Teilmenge der Pythonschlange-Sprache auf Mikrokontrolleuren ohne einen OS in nur 4 Kilobytes des RAM führt.

2004 hat das Projekt von Pyastra einen Spezialübersetzer und Monteur geschaffen, der quellengezwungene Mikrokontrolleure ins Visier nimmt.

ChinesePython () ist eine Pythonschlange-Programmiersprache mit einem chinesisch-sprachigen Lexikon. Außer vorbestellten Wörtern und Variablennamen können die meisten Datentyp-Operationen in Chinesisch ebenso codiert werden.

Pythonschlange ist auf dem Androiden als eine Auswahl als ein Teil des Androiden Scripting Umgebung verfügbar.

Semantik von Interpretational

Die meisten Pythonschlange-Durchführungen (einschließlich CPython) können als ein Befehl-Liniendolmetscher fungieren, für den der Benutzer in Behauptungen folgend eingeht und die Ergebnisse sofort erhält. Kurz gesagt, Pythonschlange handelt als eine Schale. Während die Semantik der anderen Weisen der Ausführung (bytecode Kompilation oder Kompilation zum heimischen Code) die folgende Semantik bewahren, bieten sie eine Geschwindigkeitszunahme auf Kosten der Zwischentätigkeit an, so werden sie gewöhnlich nur außerhalb einer Wechselwirkung der Befehl-Linie (z.B verwendet, wenn man ein Modul importiert).

Andere Schalen fügen Fähigkeiten außer denjenigen im grundlegenden Dolmetscher, einschließlich des MÜßIGEN und IPython hinzu. Während allgemein im Anschluss an den Sehstil der Pythonschlange-Schale sie Eigenschaften wie Autovollziehung, Retention des Sitzungsstaates und hervorhebende Syntax durchführen.

Einige Durchführungen können nicht nur zu bytecode kompilieren, aber können Pythonschlange-Code in den Maschinencode verwandeln. Bis jetzt ist das nur für eingeschränkte Teilmengen der Pythonschlange getan worden. PyPy nimmt diese Annäherung, seine eingeschränkte compilable Version der Pythonschlange RPython nennend.

Psyco ist eine Spezialisierung gerade rechtzeitig Bearbeiter, der mit CPython integriert und bytecode umgestaltet, um Code an der Durchlaufzeit maschinell herzustellen. Der erzeugte Code wird für bestimmte Datentypen spezialisiert und ist schneller als Standardpythonschlange-Code. Psyco ist mit dem ganzen Pythonschlange-Code, nicht nur einer Teilmenge vereinbar.

Entwicklung

Die Entwicklung der Pythonschlange wird größtenteils durch den Prozess von Python Enhancement Proposal (PEP) geführt. PEPS sind standardisierte Designdokumente, die allgemeine Auskunft geben, die mit der Pythonschlange, einschließlich Vorschläge, Beschreibungen, Designgrundprinzips und Erklärungen für Spracheigenschaften verbunden ist. Hervorragende PEPS werden nachgeprüft und haben durch Van Rossum, den Wohltätigen Diktator des Projektes der Pythonschlange für das Leben (Führer / Spracharchitekt) kommentiert. Die Entwickler von CPYTHON kommunizieren auch über eine Adressenliste, Pythonschlange-dev, die das primäre Forum für die Diskussion über die Entwicklung der Sprache ist; spezifische Probleme werden im Zusammenfassungsprogrammfehler-Spurenleser besprochen, der an python.org unterstützt ist. Entwicklung findet am selbstveranstalteten statt.

Die öffentlichen Ausgaben von CPYTHON kommen in drei Typen, die bemerkenswert sind, durch den ein Teil der Versionsnummer erhöht wird:

  • umgekehrt unvereinbare Versionen, wo, wie man erwartet, Code bricht und manuell getragen werden muss. Der erste Teil der Versionsnummer wird erhöht. Diese Ausgaben geschehen selten — zum Beispiel, Version 3.0 wurde 8 Jahre danach 2.0 veröffentlicht.
  • größer oder "Eigenschaft"-Ausgaben, die größtenteils vereinbar sind, aber neue Eigenschaften einführen. Der zweite Teil der Versionsnummer wird erhöht. Diese Ausgaben stehen auf dem Plan, um grob alle 18 Monate vorzukommen, und jede Hauptversion wird durch bugfixes seit mehreren Jahren nach seiner Ausgabe unterstützt.
  • Bugfix-Ausgaben, die keine neuen Eigenschaften einführen, aber Programmfehler bestechen. Der dritte und endgültige Teil der Versionsnummer wird erhöht. Diese Ausgaben werden gemacht, wann auch immer eine ausreichende Anzahl von Programmfehlern stromaufwärts seit der letzten Ausgabe, oder grob alle 3 Monate befestigt worden ist. Sicherheitsverwundbarkeit wird auch in Bugfix-Ausgaben geflickt.

Mehrere werden Alpha, Beta und Ausgabe-Kandidaten auch als Vorschauen befreit und um zu prüfen, bevor die Endausgabe gemacht wird. Obwohl es eine raue Liste für jede Ausgabe gibt, wird das häufig zurück gestoßen, wenn der Code nicht bereit ist. Die Entwicklungsmannschaften kontrollieren den Staat des Codes, indem sie das große Einheitstestgefolge während der Entwicklung führen, und BuildBot dauerndes Integrationssystem verwenden.

Standardbibliothek

Pythonschlange hat eine große Standardbibliothek, allgemein zitiert als eine der größten Kräfte der Pythonschlange, vorschriftliche vielen Aufgaben angepasste Werkzeuge zur Verfügung stellend. Das ist absichtlich und ist beschrieben worden, weil "Batterien" Pythonschlange-Philosophie eingeschlossen haben. Die Module der Standardbibliothek können mit kundenspezifischen Modulen vermehrt werden, die entweder in C oder in Pythonschlange geschrieben sind. Erhöhen Sie C ++ Bibliotheken schließen eine Bibliothek, Zunahme ein. Pythonschlange, um Zwischenfunktionsfähigkeit zwischen C ++ und Pythonschlange zu ermöglichen. Wegen des großen Angebotes an Werkzeugen, die von der Standardbibliothek zur Verfügung gestellt sind, die mit der Fähigkeit verbunden ist, eine Sprache der niedrigeren Ebene wie C und C ++ zu verwenden, der bereits zum Verbinden zwischen anderen Bibliotheken fähig ist, kann Pythonschlange eine starke Leim-Sprache zwischen Sprachen und Werkzeugen sein.

Die Standardbibliothek wird besonders zum Schreiben von internetgegenüberstehenden Anwendungen, mit einer Vielzahl von Standardformaten und Protokollen (wie PANTOMIME und HTTP) bereits unterstützt gut geschneidert. Module, um grafische Benutzerschnittstellen zu schaffen, zu Verwandtschaftsdatenbanken, Arithmetik mit willkürlichen Präzisionsdezimalzahlen in Verbindung stehend, regelmäßige Ausdrücke manipulierend, und Einheitsprüfung tuend, werden auch eingeschlossen.

Einige Teile der Standardbibliothek werden durch Spezifizierungen bedeckt (zum Beispiel, die WSGI Durchführung folgt PEP 333), aber die Mehrheit der Module ist nicht. Sie werden durch ihren Code, innere Dokumentation angegeben, und prüfen Gefolge (wenn geliefert). Jedoch, weil der grösste Teil der Standardbibliothek Quer-Plattform-Pythonschlange-Code ist, gibt es nur einige Module, die verändert oder völlig durch alternative Durchführungen umgeschrieben werden müssen.

Die Standardbibliothek ist nicht notwendig, um Pythonschlange zu führen oder Pythonschlange innerhalb einer Anwendung einzubetten. Mixer 2.49 lässt zum Beispiel den grössten Teil der Standardbibliothek weg.

Für die Softwareprüfung stellt die Standardbibliothek und Module zur Verfügung.

Einfluss auf andere Sprachen

Das Design und Philosophie der Pythonschlange haben mehrere Programmiersprachen beeinflusst, einschließlich:

  • Hartglas und sein abgeleiteter Cython sind Codeübersetzer, die beim Schreiben schneller C Erweiterungen für den CPython Dolmetscher ins Visier genommen werden. Die Sprache ist größtenteils Pythonschlange mit Syntax-Erweiterungen für C und C ++ Eigenschaften. Beide Sprachen erzeugen compilable C Code als Produktion.
  • Buhruf verwendet Einrückung, eine ähnliche Syntax und ein ähnliches Gegenstand-Modell. Jedoch verwendet Buhruf das statische Schreiben und wird mit dem.NET Fachwerk nah integriert.
  • Kobra verwendet Einrückung und eine ähnliche Syntax. Das "Anerkennungs"-Dokument der Kobra verzeichnet Pythonschlange zuerst unter Sprachen, die es beeinflusst haben. Jedoch unterstützt Kobra direkt Design durch den Vertrag, Einheitstests und das fakultative statische Schreiben.
  • ECMAScript hat iterators, Generatoren und Listenverständnisse von der Pythonschlange geliehen.
  • Gehen Sie wird als das Verbinden der "Entwicklungsgeschwindigkeit des Arbeitens auf einer dynamischen Sprache wie Pythonschlange" beschrieben.
  • Irre wurde durch den Wunsch motiviert, die Pythonschlange-Designphilosophie nach Java zu bringen.
  • Karel der Roboter ist eine populäre Bildungsprogrammiersprache geschaffen 1981 an der Universität von Stanford durch R.E. Pattis. Die ursprüngliche Syntax ist Pascal nah gewesen, aber eine neue Ausgabe in NCLab hat eine der Pythonschlange sehr ähnliche Syntax.
  • OCaml hat eine fakultative Syntax, genannt twt (Das Whitespace Ding), begeistert von der Pythonschlange und Haskell.
  • Der Schöpfer des Rubins, Yukihiro Matsumoto, hat gesagt: "Ich habe eine scripting Sprache gewollt, die stärker als Perl und mehr objektorientiert war als Pythonschlange. Deshalb habe ich mich dafür entschieden, meine eigene Sprache zu entwerfen."

Mit den Entwicklungsmethoden der Pythonschlange ist auch durch andere Sprachen wettgeeifert worden. Die Praxis, ein Dokument zu verlangen, das das Grundprinzip für, und Problem-Umgebung, eine Änderung in die Sprache (im Fall der Pythonschlange, einem PEP) beschreibt, wird auch in Tcl und Erlang wegen des Einflusses der Pythonschlange verwendet.

Siehe auch

  • Der Vergleich des Befehls schält
  • Vergleich von Programmiersprachen
  • Der Vergleich der Pythonschlange hat Entwicklungsumgebungen integriert
  • Liste von Programmiersprachen
  • Liste der Pythonschlange-Software
  • Scipy

Weiterführende Literatur

  • - Ein Interview mit Guido Van Rossum auf der Pythonschlange

Links


Gespenst / Pyridin
Impressum & Datenschutz