Diskussion:Python (Programmiersprache)
aus Wikipedia, der freien Enzyklopädie
Das Schlüsselwort lamda (oder so) wird zwar erwähnt und es wird ein Vergleich zu funktionnalen Sprachen, aber es wird überhaupt nicht erklärt. (Zumindestens eine grobe Andeutung wäre hier wohl sinnvoll.)
wiiki links zu C und Perl
"Allerdings lehnen die Entwerfer von Python Perls unübersichtliche, kryptische Syntax ab und formulieren sparsamer und damit besser lesbar."
Ist das nicht eine stark wertende Aussage? Perl hat eine relativ komplexe Syntax, ist aber sicher nicht per se unübersichtlich oder kryptisch. -- Mx2000 16:46, 3. Apr 2004 (CEST)
Nun ja, das ist ein weites Feld. Perl tritt jedenfalls deutlich häufiger in der Form auf, wobei nicht eindeutig geklärt ist, ob die Sprache zu dem Stil verleitet oder Leute anzieht die gern kryptisch schreiben. -- ok ok ich stochere in einem Wespennest. Aber es wäre deutlich günstiger, den Satz so zu formulieren, daß der Schreiber keine Stellung bezieht:
"Allerdings lehnen die Entwerfer von Python Perls ihrer Ansicht nach unübersichtliche, kryptische Syntax ab und formulieren sparsamer und damit besser lesbar."
Tismer 00:48, 15. Jan. 2007 (CET)
Es wäre gut, wenn auch noch Iteratoren/Generatoren mit in den Artikel aufgenommen werden würden. Gerade die runden zum Teil das Sprachdesign elegant ab. Beispiel für die paarweise Zusammenführung von beliebig vielen Sequenzen ohne eine weitere zu Erzeugen mit Anwendung:
def izip(*iterables): iterables = map(iter, iterables) while True: result = [i.next() for i in iterables] yield tuple(result) for i,j, in izip("abc",[1,2,3]): print i,"=",j
[Bearbeiten] Interaktiv
Ich fände es besser, wenn alle Punkte unter interaktiv zu den Weblinks zusammengefasst werden würden. Es würde mehr die Form des Artikels erhalten, die meiner Meinung nach sonst verloren geht. Nun doppelt bestehende Links müssen raus und die restlichen Weblinks könnte man unter sonstiges zusammenfassen. --mfg Milanx 14:39, 8. Jul 2004 (CEST)
- Jupp. Finde ich auch. Bei der Gelegenheit sollten auch gleich ein paar Links ausgemistet werden und nur die wichtigsten Einstiegspunkte verlinkt werden. Das wird sonst zu unübersichtlich und man muss sich durch etliche Links klicken, ohne zu wissen, wo man nun anfangen soll. --Sprezz 15:25, 8. Jul 2004 (CEST)
- Dann würde ich aber auch noch einen extra Punkt für Tutorials hinzufügen.
- Hätte ich persöhnlich nix dagegen, aber da kommen für mich momentan nur 3-4 Seiten in Frage, die wirklich gut sind. Alle anderen enthalten nur rel. allgemeine Sachen, die IMHO in den bereits gelisteten Links besser beschrieben sind. Ich habe deswegen auch nur einen Link zur python-Website mit deutschen Dokumentationen gesetzt, da dann von "offzieller" Seite aus Seiten gelistet werden. Allerdings bin ich der Meinung, dass man da auch mal aufräumen könnte. ..--Milanx 23:11, 9. Jul 2004 (CEST)
- Dann mach ma
- Hätte ich persöhnlich nix dagegen, aber da kommen für mich momentan nur 3-4 Seiten in Frage, die wirklich gut sind. Alle anderen enthalten nur rel. allgemeine Sachen, die IMHO in den bereits gelisteten Links besser beschrieben sind. Ich habe deswegen auch nur einen Link zur python-Website mit deutschen Dokumentationen gesetzt, da dann von "offzieller" Seite aus Seiten gelistet werden. Allerdings bin ich der Meinung, dass man da auch mal aufräumen könnte. ..--Milanx 23:11, 9. Jul 2004 (CEST)
[Bearbeiten] Review II
Wiesoe ist der Artikel beim Re-Review gelandet? Sollen Neuigkeiten berücksichjtigt werden? So kanz aus dem hohlen Bauch fallen mir als erstes Unicode und Zeichenkodierungen, sowie der Stackless Fork ein. -- Pjacobi 09:43, 1. Sep 2004 (CEST)
- Ich persönlich finde, dass der Artikel den Anforderungen für exzellente Artikel nicht mehr entspricht, siehe auch mein Kommentar auf der Review-Seite. Verglichen etwa mit en:Python programming language hat er sehr wenig an Information. Für nicht-programmieren-könnende Leute sollte auch etwas mehr an Information da sein (vgl. Kandidaten-Diskussion zu Legend of Zelda oder mathematische Artikel wie die Kreiszahl). Nicht zuviel, aber auch. Die Verwendung von Python kommt zu kurz, es wird nur Zope (sicher wichtig) und Mojo Nation erwähnt. U.a. entwickelt sich Python aber zur KDE-Standard-Skriptsprache. Die Community ist im wesentlichen nur in den Weblinks vorhanden, ich möchte auch irgendwie reinkriegen, dass viele ehemalige Lisp- und Smalltalk-Adapteten mit dabei sind: Die haben oft ziemlich kreative Ideen, siehe [1]. Zur Zeit sammle ich mal persönlich Material zum Verbessern des Inhalts, wenn allerdings neue und interessante Features auch hineinsollen, hab ich nichts dagegen.
[Bearbeiten] Interpertiert oder Interpretierend?
Ich finde das die Änderung von "interpretiert" zu "interpretierend" falsch ist, denn nicht Python (Sprache) wird vom Python Interpreter (Programm) interpretiert, die Programmiersprache selbst interpretiert nichts, ist also auch nicht interpretierend. --Rbb 12:31, 1. Okt 2004 (CEST)
[Bearbeiten] reiner werbe artikel
- wieso ist der artikel mit "sehr gut" ausgezeichnet? hier werden die eigenschaften von python einseitig als gut und neu dargestellt. ich glaub nicht das jeder programmierer der meinung ist, dass das zwangseinrücken die sprache besser macht. ich hab zumindest kein bock darauf 20 zeilen quelltext um eins weiter einzurücken nur weil ich vorrübergehnt ne bedingung vorranstelle (wie ich es öffters bei fehlersuchen tue). auch das benuzen von keywords ist meiner meinung nach kein vorteil gegenüber ner symbolik. keywords machen den qelltext nur für englische programmieranfänger leichter zu lesen. für ein erfahrenen programmierer sind kurze eindeutige symbole wesentlich schneller zu ersehn. ein witz find ich eh das hier auf pythons lesbarkeit dank der keywords verwiesen wird, und dann gibt es sowas wie elif. was soll das sein, ein gut leserliches keyword? was mich aber am meisten stört sind die ständig einseitigen verweisse auf anderen programmiersprachen. achja, noch eins, python verzichtet nur auf das endsymbol eines blockes, das anfangssymbol ist ja immer durch ein doppelpunkt gegeben. ja einem doppelpunkt, keinem einrücken und auch keinem keyword sondern einem symbol! soweit zur konsequenten umsetzung der sprache.
- ps:ich will hier nicht python in grund und boden reden, aber die selbstverherlichung ist nun wirklich nicht zu ertragen. python ist nicht besser und nicht schlechter als die anderen sprachen. sie hat wie alle mir bekannten sprachen (bis auf brainfuck ;) ) ihre mängel und unstimmigkeiten.
- ich hab deswegen jetzt auch das exzilent durch fragwürdige neutralität ersetzt.
- --SK-Genius 08:03, 9. Nov 2004 (CET)
- Übrigens würde dein Text durch Einrückungen und eine korrekte Rechtschreibung (Gross/klein) auch besser lesbar. Insofern kannst du viel von Python lernen.--84.73.57.44 14:54, 1. Apr 2006 (CEST)
-
- Deine Meinung in allen Ehren, aber die Klassifikation exzellenter Artikel ist eine community-weite Entscheidung, die durch ein Meinungsbild bestätigt werden muss. Da der Artikel inzwischen allerdings etwas verwahrlost ist, wurde er in das Review gestellt. Du kannst nicht einfach mit der Axt eigenwillig diese Art von mehrheitlichen Entscheidungen vernichten. Beteilige dich an dem Prozess, anstatt ihn zu stören.
- Zur eigentlichen Aussage: Der Text erklärt doch, daß die Art der Einrückung für viele Programmierer ungewohnt und teilweise als rückständig empfunden wird. Er weist auch darauf hin, daß Probleme zwischen Tab und Space auftreten können, wenn diese nicht einheitlich benutzt werden. Ich sehe keinerlei übertriebene Werbung. Dass du keinen Bock darauf hast, zum schnellen testen einen Codeblock einzurücken, mag zwar so sein, ist aber schlechter Stil, da der Programmablauf dann nicht mehr der optischen Formatierung folgt. Bei komplexeren Arbeiten begibst du dich in die Gefahr, die vorgestellte Bedingung zu vergessen und dir seltsame Bugs einzufangen. In den meisten Projekten gilt deshalb die Konvention auch Bedingungen mit nur einer Anweisung in Blöcke zu fassen.
- Ich schlage vor du änderst einfach die Teile, die dich stark stören. Gemeinsam können wir sicherlich zu einem besseren Artikel kommen.--Sprezz 13:12, 9. Nov 2004 (CET)
- ok, die teile werd ich überarbeiten sobald ich zeit finde. das einrücken währe ein vorteil, wenn es automatisch von der entwicklungsumgebung anhand der symbolik (den klammern) vorgenommen würde. jedoch sollte es auch dann nicht zur syntax gehören, sondern nur zur übersicht dienen.
- ich werd mich mal umschaun wo die entscheidung getroffen wird. das ist ja auf dem ersten blick nicht zu erkennen. deswegen dacht ich das man sowas wilkürlich setzten kann und es nur bestand hat wenn keiner was gegen unternimmt. halt wie's normale editieren eines artikels ganz nach dem freien wiki-prinzip. das dahinter ein "entscheidungsprozess" steht kann man ja nicht ahnen. besonders nicht bei einem wiki.
- --SK-Genius 18:38, 9. Nov 2004 (CET)
-
- Abgesehen davon, daß ich einen ganzen Absatz ohne die leiseste Bemühung um Rechtschreibung und Lesbarkeit als Zumutung empfinde und sich der Autor damit m. E. für jede Beurteilung der Lesbarkeit von Programmiersprachen disqualifiziert:
-
- selbstverständlich helfen Editoren wie z.B. Vim bei der Einrückung und auch dabei, die Einrückung für ganze Codeblöcke zu erhöhen oder zu verringern
- dadurch, daß es wenige Schlüsselwörter sind, ist die Hürde auch für Nicht-Englischsprechende sehr niedrig. "elif" läßt sich verschmerzen, existiert auch nicht nur in Python, und es erledigt gleichzeitig die Notwendigkeit einer separaten Struktur wie "case", "switch", "select" (und wie sie alle heißen)
- was soll das überhaupt für ein Gegensatz sein - Schlüsselwörter auf der einen und kurze, schlüssige Bezeichner auf der anderen Seite? Letztlich kommt keine Programmiersprache ganz ohne Schlüsselwörter aus, wenn auch wenige damit so clever umgehen wie Rexx.
- der Clou von Python ist gerade, daß die Einrückung signifikant ist; nur so kann eine mit der realen Ausführungslogik identische Einrückung erzwungen werden. Eine große Fangemeinde von Python findet diese Eigenschaft hervorragend und wird sie sich von niemandem madig machen lassen. Wer das nicht gut findet, läßt es eben bleiben und programmiert meinetwegen in Perl.
-
- --Tobias 16:34, 9. Dez. 2006 (CET)
- Abgesehen davon, daß ich einen ganzen Absatz ohne die leiseste Bemühung um Rechtschreibung und Lesbarkeit als Zumutung empfinde und sich der Autor damit m. E. für jede Beurteilung der Lesbarkeit von Programmiersprachen disqualifiziert:
- Der Mechanismus der Meinungsbildern existiert im wesentlichen an zwei Punkten: Einmal bei der Entscheidung über Löschanträge (siehe zB. hier) oder halt bei der Aufnahme von Artikeln zur Liste der exzellenten Artikel im Rahmen der sogenannten Qualitätsoffensive (weitere Informationen hier). Außerdem befindet sich der Artikel im Review, dh. auf dieser Seite sollen Verbesserungswünsche gesammelt werden. Leider liegt der Thread dort aber tatsächlich etwas brach. Insofern kann man überlegen, ob man den Artikel nicht nochmal unter den aktuellen Ansprüchen an exzellente Artikel neu prüfen lassen kann. Wie die Modalitäten dazu aussehen, kann ich allerdings nicht sagen. Vielleicht sollte man den Artikel einfach wieder neu in der Kandidatenliste (mit Verweis auf das Alter) eintragen!?--Sprezz 02:12, 10. Nov 2004 (CET)
[Bearbeiten] Diskussion aus dem Review
Schöner Artikel, aber schon etwas lange auf der Liste: Seit Mai 2003, also vor der Einführung der Kandidaten-Seite. Das sieht man ihm auch an: Die Geschichte wird kaum behandelt, Anwendungsgebiete auch nicht. Der Stil hat meines erachtens auch eine Verbesserung verdient. Nachdem ich derzeit an einem Projekt mit Python arbeite, nehme ich mich des Artikels mal an, gegen weitere Verbesserungsvorschläge hab ich nichts. --nd 09:52, 30. Aug 2004 (CEST)
- Ich habe vom Thema keine Ahnung, aber der erste Abschnitt zur Philosophie las sich ganz gut. Was auf jeden Fall stört ist die lange Liste von insgesamt 17 Weblinks - empfohlen werden 5. Das ist zwar nur eine Leitlinie, aber 17 sind einfach zu unübersichtlich - die kann und wird sich keiner alle ansehen wollen. Wir sind kein Webkatalog und sollte nur die besten angeben. Vielleicht kann da ein Kundiger etwas ausdünnen. --mmr 04:28, 2. Sep 2004 (CEST)
- bevor der review hier anfängt vor sich hin zu schimmeln und sich irgendwo zum leben erwacht von allein entfernt. da ich bei dem thema eindeutig nicht fachkundig bin + die einwände offensichtlich nicht bearbeitet wurden - ab in 'ne neue abstimmung? -- southpark 03:49, 13. Nov 2004 (CET)
[Bearbeiten] Syntaxfehler?
"Python unterstützt (und nutzt ausgiebig) die Ausnahmebehandlung als ein Mittel, um Fehlerbedingungen zu testen. Dies ist so weit in Python integriert, dass es sogar möglich ist, Syntaxfehler abzufangen."
Sollte das nicht Semantikfehler heißen? Die Berichtigung von Syntaxfehlern ist bspw. in C++ und Pascal ganz normal. Lediglich Semantikfehler kann der Compiler nicht erkennen. - MfG Viruzz (?!) 15:27, 30. Nov 2004 (CET)
Afaik nein, es ist in Python z.b. folgendes möglich:
try: import foo except SyntaxError: print "Ein Syntaxfehler ist im Modul aufgetreten"
Wenn nun im Modul foo ein Syntaxfehler auftritt, wird auf die Exception SyntaxError reagiert. --Rbb 20:35, 30. Nov 2004 (CET)
- aha ich fragte nur, weil es so als Besonderheit herausgestellt wird und ich die Syntaxüberprüfung von C++ her als ganz normal ansehe (egal in welcher Form). :) - MfG Viruzz (?!) 21:05, 30. Nov 2004 (CET)
Abfangen von Syntaxfehlern ist afaik auf Modul Import und eval/exec beschränkt. Das ist nötig, wenn man unbekannte Module laden will, aber mehr "Handling" gibt es einem nicht. Man kann z.B. nicht innerhalb von Python testen, ob eine bestimmte Syntax erlaubt ist, oder die eingesetzte Sprachversion zu jung ist. Sowas geht z.B. nicht:
try: def generator_example(): yield 1 except SyntaxError: # if SyntaxError would be raised at runtime we could do: # python version to low for yield keyword? def generator_example(): return [1]
So toll ist das mit den Syntaxfehlern also nicht und der Artikeltext verspricht zuviel. --Michael Janssen 21:34, 14. Dez. 2006 (CET)
- Wenn du das machen willst musst du doch einfach nur ein kleines Wrappermodul um den Code den du testen willst schreiben.
- Dass das was du da schreibst nicht geht liegt auch nicht an irgendeiner Beschränkung auf Modulimport und eval/exec, sondern einfach nur daran, dass der Interpreter das Modul erst einmal komplett parst, bevor er es auszuführen beginnt. Der Syntaxfehler fliegt dann natürlich schon beim Parsen, also lange bevor der except-Clause es abfangen kann. --moldy
[Bearbeiten] Google
siehe Ziele, letzter Satz:
"Auch Google wurde mit Python programmiert."
Quelle? Detailliertes? Das englische Pendant (Python) spricht frei uebersetzt von "Python wird umfassend von Google benutzt" - die Engine ist nicht ausdruecklich mit Python entwickelt worden.
--82.192.227.132 04:32, 1. Dez 2004 (CET)
[Bearbeiten] Aus: Wikipedia:Kandidaten für exzellente Artikel
[Bearbeiten] Python (Programmiersprache), 17. November
aus der Wartung (ist bereits exzellent und steht zur Abwahl/Wiederwahl):
- Dagegen (nicht exzellent): Es fehlt Geschichte und ein Abschnitt über die Bedeutung. -- Dishayloo [ +] 00:55, 17. Nov 2004 (CET)
- abwartend fast Pro, ein gut geschriebener auch für Laien verständlicher Artikel über diese Programmiersprache, der nicht in ein HowTo abdriftet, sondern die Besonderheiten verständlich darstellt. Ein Abschnitt Geschichte fehlt sicherlich und würde mich zu einem pro bringen. --finanzer 00:09, 20. Nov 2004 (CET)
- contra: Nicht exzellent.--zeno 13:34, 20. Nov 2004 (CET)
- unentschlossen: Was wurde im Review gewartet? Bei der Menge an Typos und für den Laien unvollständlicher Formulierungen kann ich keinen Mehrwert erkennen. Schade. --Badger 19:57, 5. Dez 2004 (CET)
- contra: leider hat sich weder in der Wartung noch während diesr Abstimmung sonderlich viel getan. Für die Exzellenten reichts aus den von Dishayloo genannten Gründen IMHO nicht mehr (schade, wieder ein Informatikartikel weniger und dass, obwohl es in der WP von Informatikern nur so wimmelt >;O( -- Necrophorus 23:00, 5. Dez 2004 (CET)
- Contra siehe oben. --Bummler 09:53, 6. Dez 2004 (CET)
Ergebnis: 4 Contra, abwartend bis Pro 2
[ ""Vorschlag zu Diskussion"", dass wenn sich ein kundiger Programmierer finden lässt mann vielleicht noch eine beliebte Entwicklungsumgebung mit Angeben könnte. Fehlt! ]
[Bearbeiten] Lesenswert-Diskussion
Python [ˈpaɪθn̩] ist eine objektorientierte Programmiersprache. Sie wurde Anfang der 1990er Jahre von Guido van Rossum am Centrum voor Wiskunde en Informatica in Amsterdam entwickelt, ursprünglich für das verteilte Betriebssystem Amoeba. Alle bisherigen Implementierungen der Sprache (siehe auch Jython) übersetzen den Text eines Python-Programmes transparent in einen Zwischencode, der dann von einem Interpreter ausgeführt wird.
Pro Antifaschist 666 00:49, 17. Okt 2005 (CEST)
Pro kompakt und flüssig geschrieben, lesenswert. --Heliozentrik 19:45, 20. Okt 2005 (CEST)
- Contra --Elian Φ 02:52, 21. Okt 2005 (CEST)
Pro - Priwo 09:07, 22. Okt 2005 (CEST)
- pro --Zahnstein 20:56, 22. Okt 2005 (CEST)
[Bearbeiten] Wikibook zu Python
Täuscht der Eindruck, dass die Wikibook Baustelle relativ verwaist ist? Irgendwie tut sich da nicht mehr viel, oder?
Spricht eigentlich etwas dagegen, das OpenBook How to think like a computer scientist - Learning with Python als Wikibook ins Deutsche zu übersetzen? Das ist sicher kein Buch für alte Programmierhasen, aber für jemanden, der Python als erste Programmiersprache lernen will, ist es IMHO ganz gut. Es gibt bereits eine Übersetzung einiger Kapitel unter Wie ein Informatiker denken lernen ... mit Python, aber ich denke, wenn man sich gemeinsam daran macht, sollte es recht schnell gehen. Bei der Gelegenheit kann man die eine oder andere Anpassung z.B. bei den Variablennamen etc. machen.
Geht das? Oder muss man immer als persönlicher Autor bei einem solchen Projekt auftreten?
Wie setzt man sowas auf?
--Rat 22:26, 9. Jan 2006 (CET)
Inzwischen wurde ein Link zu "A Byte of Python" eingefügt, das ist komplett, fundiert geschrieben und gut verständlich - man sollte darauf verweisen anstelle auf der ewigen Baustelle bei den Wikibooks.
[Bearbeiten] Gegenüberstellung C und Py
Wenn ich spaß dran hab kann ich auch in C die geschweiften Klammern bei if weg lassen, sofern ich nur eine Anweisung habe. das Beispiel müsste also wie folgt lauten:
int factorial(int x) { if(x == 0) return 1; else return x * factorial(x - 1); }
Und somit habe ich wieder fast das selbe wie in Py.
PS: Kommentare wie diese haben in nem objektiven Artikel imho nichts verloren:
Unverbesserliche schreiben: int factorial(int x) { return x ? x*factorial(x-1) : 1 }
--FreaKazoid 10:17, 2. Mai 2006 (CEST)
- Dass man dasselbe haben kann wie in Python, wird auch nicht in Abrede gestellt. Allerdings hat man in C (und anderen Sprachen) die Freiheit auf Einrückungen ganz zu verzichten und das Programm absichtlich (vgl. IOCCC) oder aus Nachlässigkeit unleserlich zu machen. Ich kenne Programmieranfänger, die erst programmieren und anschließend einrücken (weil der Pauker das so will). Mäkelt man den nicht eingerückten Quelltext an, hört man "Warum? geht doch auch so". Und das stimmt bei "Spielprogrammen" von 20-30 Zeilen auch. Hat man sich diesen Stil erst angewöhnt, wird man ihn hinterher schlecht wieder los. In Python muss man von Anfang an richtig einrücken, sonst funktionieren die Programme nicht. Gegängelt fühlen sich dadurch nur die Umsteiger zu Python. Wer mit Python als 1. Programmiersprache anfängt, macht es hinterher bei anderen Sprachen automatisch richtig.
- Der Satz zu Unverbesserliche ... ist bereits auskommentiert, könnte man auch ganz streichen. --Rat 19:05, 2. Mai 2006 (CEST)
Der Artikel sollte nur die Eigenschaften von Python beschreiben und nicht wertend Programmiersprachen vergleichen. Wir sind uns doch alle einig, dass Freiheit ein hohes Gut ist, und jede und jeder kann sich die Sprache aussuchen, die ihr und ihm am besten gefaellt oder dem Problem am besten angemessen ist. (Der vorstehende, nicht signierte Beitrag stammt von 85.214.63.253 (Diskussion • Beiträge) 05:51, 12. Okt. 2006)
[Bearbeiten] Überarbeitung Abs. Ausnahmebehandlung
Folgenden inkorrekten Satz habe ich entfernen müssen:
- Es ist tatsächlich so, dass es in Python z. B. anstelle eines vorherigen Dateitestes auf Beschreibbarkeit üblich ist, die Schreibfunktion einfach auszuprobieren und eine eventuelle Ausnahme abzufangen – falls der Zugriff verwehrt wird.
Es handelt sich hierbei um keine python-spezifische Vorgehensweise, die man anwendet, weil es "üblich" ist, sondern um eine Maßnahme zur Vermeidung einer ganz bestimmten Sicherheitslücke, die situationsbedingt und nicht programmiersprachenbedingt auftritt.
Konkret sollte man keinen Zitat:"vorherigen Dateitest" durchführen, und danach anhand dieses Ergebnisses auf die Datei zugreifen, weil sich in der Zwischenzeit die Attribute der Datei geändert haben können (ermöglicht einen time-of-check-to-time-of-use exploit). vgl. den englischen Artikel en:TOCTTOU.
Nocheinmal: Das hat Null mit Python zu tun. Es ist mir ein Rätsel, wie das die Review- und Lesenswert-Diskussion überdauern konnte. --Contributor 15:10, 15. Aug 2006 (CEST)
- Viele Leute vertreten die Auffassung, daß Ausnahmebehandlung nur für Ausnahmebedingungen verwendet werden sollte (daher auch der Name...). In diesem Sinne dürfte man beim Öffnen einer Datei keine Ausnahme bekommen, denn ein Fehler ist hier nichts ungewöhnliches. In dieser Denkart kann eine sichere Fehlerbehandlung (nur) mit Rückgabewerten durchgeführt werden.
- Ein Grund für diese Auffassung ist, daß Ausnahmen in vielen Sprachen relativ aufwendig sind, so daß man sie aus Performancegründen vermeidet. Das ist aber in Python nicht so, und Ausnahmen werden gelegentlich bewußt auch im regulären Programmfluß verwendet, z.B. StopIteration zum Beenden eine Iteration.
- Vielleicht war etwas in diesem Sinne gemeint, aber Du hast recht, so wie es dastand, war es nicht korrekt. Oefe 18:09, 15. Aug 2006 (CEST)
- Doch, das ist pythonspezifisch. Das hat im Gegenteil mit TOCTTOU nichts zu tun. Man macht das in Python auch völlig unabhängig von irgendwelchen Sicherheitserwägungen. Der unter Python-Leuten oft zitierte Spruch dazu lautet "It is better to beg forgiveness than to ask for permission.". Das ist Teil einer im Pythonbereich verbreiteten Philosophie und unterscheidet sich durchaus von dem, was man in anderen Sprachen macht. Das Öffnen einer Datei ist allerdings vielleicht nicht gerade das beste Beispiel dafür. In Python wird von sehr vielen zum Beispiel auch das hier bevorzugt:
try: x = foo.bar except AttributeError: print "foo hat kein bar!"
An Stelle von:
if hasattr(foo, 'bar'): x = foo.bar else: print "foo hat kein bar!"
--moldy
[Bearbeiten] Name
Bevor das gleich jemand revertet: Pyython ist nach Monty Python bennant, nicht nach dem Tier. Dazu ein Zitat aus der Orginaldokumentation (Tutorial, Kapitel 1): By the way, the language is named after the BBC show “Monty Python’s Flying Circus” and has nothing to do with nasty reptiles. Making references to Monty Python skits in documentation is not only allowed, it is encouraged! Siehe auch Monty_Python#Trivia
- Lustig :-) genau das wollte ich auch gerade ändern. Vielleicht sollte man die Quelle http://www.python.org/doc/faq/general/#why-is-it-called-python angeben. --Andreas86 22:49, 26. Aug 2006 (CEST)
- Daran das in der FAQ nachzuschauen hatte ich gar nicht gedacht, ich hatte mich beim lesen des Artikels nur an das Tutorial erinnert :-) Hab beide Links als Einzelquellenangbe hinzugefügt
- Noch lustiger ist allerdings, das derjenige, der das vorher geändert hat, dies mit dem Hinweis "Vandalismus" getan hat. Merkwürdige Leute gibts -- Fkoch 23:15, 26. Aug 2006 (CEST) (wie auch die beiden vorangehenden, unsignierten Beiträge)
[Bearbeiten] Kategorie
Python ist eine Programmiersprache. Daß sie auch eine Skriptsprache ist, mag sein, ich denke aber eher, daß Bash-Skripte in diese Kategorie gehören, nicht vollwertige Programmiersprachen. Ich möchte, daß Python in die Kategorie Programmiersprachen aufgenommen wird. Das habe ich selbst auch schon gemacht, allerdings wurde dieser Edit revertiert. --Gnushi 15:13, 12. Dez. 2006 (CET)
- Der Begriff der Skriptsprache ist klar definiert und umfaßt mitnichten nur Shell-Skripten. Zudem (bzw. genau aus diesem Grund) ist die Kategorie „Skriptsprache“ bereits eine Unterkategorie von „Programmiersprache“. – Holger Thölking (d·b) 15:53, 12. Dez. 2006 (CET)
[Bearbeiten] Python wurde beeinflußt durch ?
Beim Lesen dieses Artikels fiel mir das Kästchen auf, worin u.a. die Sprachen gelistet werden, die es beeinflußt haben. Das sieht mir etwas geraten aus, es ist wohl eine (unvollständige) Liste von Sprachen, die Ähnlichkeiten aufweisen, aber dann würde ich es auch so nennen. Meines Wissens hat Guido z.B. keine Ahnung von Modula 3. Aber vielleicht frage ich ihn mal explizit auf PyCon 2007.
Auf jeden Fall fehlt hier ganz eklatant Algol 60, das weiß ich sicher, denn damit hat Guido angefangen, und daher stammen die Konstrukte wie a < b < c sowie multiple assignment.
Tismer 00:40, 15. Jan. 2007 (CET)
http://www.python.org/infogami-faq/general/why-was-python-created-in-the-first-place/
Guido hat sehrwohl Ahnung von Modula-3, da brauchst du ihn nicht fragen ;-)