„Diskussion:Python (Programmiersprache)“ – Versionsunterschied

Inhalt gelöscht Inhalt hinzugefügt
Zeile 47:Zeile 47:


== Funktionale Programmierung ==
== Funktionale Programmierung ==
Meiner Meinung nach könnte der Abschnitt zur funktionalen Programmierung einen Hinweis auf [functools https://docs.python.org/3/library/functools.html] vertragen.
Meiner Meinung nach könnte der Abschnitt zur funktionalen Programmierung einen Hinweis auf [https://docs.python.org/3/library/functools.html functools] vertragen.
Hingegen verstehe ich nicht, warum als erstes auf Coconut hingewiesen wird, da es eine komplett andere Programmiersprache ist.
Hingegen verstehe ich nicht, warum als erstes auf Coconut hingewiesen wird, da es eine komplett andere Programmiersprache ist.

Version vom 8. März 2022, 20:03 Uhr

Diese Diskussionsseite dient dazu, Verbesserungen am Artikel „Python (Programmiersprache)“ zu besprechen. Persönliche Betrachtungen zum Thema gehören nicht hierher. Für allgemeine Wissensfragen gibt es die Auskunft.

Füge neue Diskussionsthemen unten an:

Klicke auf , um ein neues Diskussionsthema zu beginnen.
Archiv
/Archiv/1 · /Archiv/2
Wie wird ein Archiv angelegt?

.NET fehlt

Warum wurde die Änderung rückgängig gemacht, die neben Java auch .NET nennt, wenn es darum geht, dass Zeichenketten unveränderlich gespeichert werden? Die Änderung war korrekt und sachlich richtig. Hast du eine persönliche Präferenz? --My2Cents (Diskussion) 14:30, 30. Jun. 2020 (CEST)Beantworten

Optionale statische (graduelle) Typprüfung ab Python 3.5

Aktuelle Python-Versionen ab 3.5 unterstützen die optionale Annotation von Objekten mit Datentypen. Daher wird in der Infobox vom englischen Artikel auch von "gradual Typing" gesprochen, mit PEP 483 als Referenz. Und die Unterstützung davon wird in der Zukunft vermutlich nur wachsen. Mit der Bibliothek MyPy kann man seine Programme auch einer statischen Typprüfung unterziehen. Daher ist Aussage aus dem Artikel

eine statische Typprüfung wie z. B. bei C++ gibt es nicht

zu stark. Die Aussage ist auch nicht ganz falsch, per Voreinstellung ist keine statische Typprüfung eingebaut, außer man verwendet zusätzliche Bibliotheken, und sie ist ganz sicher nicht wie bei C++. Aber die Sprache selbst unterstützt die Bibliotheken zur statischen Prüfung bewusst. Daher würde ich diese Aussage relativieren und die optionalen Typ-Annotationen im Artikel erwähnen. --Elimik31 (Diskussion) 12:50, 16. Okt. 2020 (CEST)Beantworten

Taschenrechner

Mittlerweile scheint es auch Taschenrechner mit einer Implementation zu geben. Casio (FX-9860 GⅢ, https://edu.casio.com/products/graphic/fx9860g3/) und ti (84 Plus CE-T, 83 Premium CE Edition) stand auf den Geräten, die mir unterkamen und hierhin zu gehören scheinen — wobei Casio ja längst auch auf Geräten zu finden ist, auf denen sonst hp steht (z. B. hp 300S Plus vs. Casio 991 o. ä.). (nicht signierter Beitrag von 93.229.106.129 (Diskussion) 00:19, 8. Nov. 2020 (CET))Beantworten

Quicksort ist kein Quicksort...

Eigentlich muss man das an vielen Stellen in der Wikipedia korrigieren, mir ist es halt jetzt grad hier aufgefallen: Der als "Quicksort" bezeichnete Algorithmus bezeichnete funktionale Algorithmus ist nicht wirklich Quicksort, denn das wesentliche Element für die entsprechende Geschwindigkeit des Algorithmus, ist, dass die Daten im Array verbleiben und nicht neue Listen angelegt werden. --85.212.72.147 11:43, 8. Nov. 2021 (CET)Beantworten

Da hat die IP prinzipiell recht. Dass keine neuen Listen angelegt werden hat zwar nichts mit der Geschwindigkeit des Algorithmus zu tun, ist aber eine prinzipielle Eigenschaft von Quicksort - siehe Quicksort#Speicherplatz. --Sebastian.Dietrich  ✉  13:24, 8. Nov. 2021 (CET)Beantworten

Zugriff auf Elemente in Closures

Die Aussage Auf diese Weise erhält man die drei Funktionsobjekte pop, push, is_empty, um den Stack zu modifizieren bzw. auf enthaltene Elemente zu prüfen, ohne l direkt modifizieren zu können. ist schlichtweg falsch. Es bedarf nur einer Python Installation um dies selbst zu verifizieren. [1]

push('Hello world')
l = pop.__closure__[1].cell_contents
print(l)
l.append(42)
print(pop())

Warum meine Änderung unter Verweis auf die Belegpflicht entfernt wurde, obgleich o.g. Falschaussage genau so wenig belegt ist, erschließt sich mir nicht. Wissenschaftliche Artikel zu diesem speziellen Feature der Programmiersprache Python sind mir nicht geläufig. --2001:16B8:6463:B600:7A1A:C2A0:31DF:FE56 00:58, 28. Feb. 2022 (CET)Beantworten

Das geht schlicht und ergreifend am Thema vorbei. Python ist eine introspektive Sprache, daher kann man immer auf (fast) alle Objekte direkt zugreifen und Kapselungen umgehen; dies liegt in der Natur der Sprache. Kapselung wird nicht erzwungen (mit einer Ausnahme, aber das würde hier zu weit führen); das gilt z.B. auch für Klassen- und Instanz-Attribute, für Properties und vieles mehr. Dies wird bereits an anderer Stelle im Artikel erwähnt. Das einzige, das an dem ursprünglichen Satz verbessert werden könnte, ist das Wort „können“ durch „müssen“ zu ersetzen. --Winof (Diskussion) 16:54, 2. Mär. 2022 (CET)Beantworten
Könnte man den Satz nicht einfach streichen, da er nachweislich (s.o.) sachlich falsch ist? --2001:9E8:6C65:B400:7627:EAFF:FEA9:DF7D 18:41, 8. Mär. 2022 (CET)Beantworten
PS: Der geänderte Text ist sachlich nicht mehr falsch. Allerdings fehlt zu der Aussage ein Beleg. Wie belegt man die Aussage
Auf diese Weise erhält man die drei Funktionsobjekte pop, push, is_empty, um den Stack zu modifizieren bzw. auf enthaltene Elemente zu prüfen, ohne dabei auf l direkt zuzugreifen.
am besten? --2001:9E8:6C65:B400:177B:F79D:C488:2501 18:52, 8. Mär. 2022 (CET)Beantworten

Funktionale Programmierung

Meiner Meinung nach könnte der Abschnitt zur funktionalen Programmierung einen Hinweis auf functools vertragen. Hingegen verstehe ich nicht, warum als erstes auf Coconut hingewiesen wird, da es eine komplett andere Programmiersprache ist.