Warum bei python einmal len("text") und einmal "textzwei ".strip()?


16.04.2024, 07:00

Ps: ich meine mit der frage das die verschiedene syntax der verschiedenen funktionsaufrufe unnötig scheint.

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Python ist über 30 Jahre alt. Jede Programmiersprache, die halbwegs alt wird und sich dabei weiterentwickelt, wird Spuren vergangener Trends, Moden und Gebräuche in sich tragen. Man kann den Benutzern nicht zumuten, immer wieder alles zu ändern, weil's grad anders gemacht wird.

Das ist so ein Beispiel dafür.

Außerdem ist Python ganz bewusst eine Multiparadigma-Sprache, wie einige andere auch: du darfst es also imperativ, objektorientiert oder (bis zu einem gewissen Grad) funktional verwenden und das gern mischen.

Du kannst also auch selbst freistehende Funktionen schreiben und bist nicht gezwungen, alles krampfhaft objektorientiert zu gestalten - was auch gut so ist, weil OO bei kleineren Programmen (für welche gerade Python sehr gern verwendet wird) oft keine Vorteile bringt.

Inkognito-Nutzer   16.04.2024, 09:13

Ok dann war meine Erkenntnis aber nicht komplett daneben.

Ich wär ehrlich gesagt garnicht darauf gekommen dass es wirklich einfach der wie du sagst "halbwegs alten" Sprache geschuldet ist.

Es wird also in anderen Sprachen anders gemacht - aber python ist älter und hat ohnehin mit dieser Funktionalität seine Vor und Nachteile..

1
jo135  16.04.2024, 10:02
@Inkognito-Fragesteller
Ich wär ehrlich gesagt garnicht darauf gekommen dass es wirklich einfach der wie du sagst "halbwegs alten" Sprache geschuldet ist.

Das ist zumindest der Ursprung. Tatsächlich haben Strings und viele andere Sequenztypen übrigens eine Methode .__len__(), die wiederum von len() aufgerufen wird. Solche Methoden sind aber nicht dafür gedacht, dass sie in deinem Python-Code verwendet werden.

Was an freistehenden Funktionen noch praktisch ist: man kann sie als Funktionsreferenzen wie Variable an Methoden übergeben. Das ist in der funktionalen Programmierung sehr häufig.

Am Ende sind das alles Entscheidungen von Menschen, die die Sprache entwickeln. Wenn sie es so wollen, ist es halt so.

1
Inkognito-Nutzer   16.04.2024, 10:24
@jo135

"Wie variablen an Methoden übergeben" klingt doch wieder nützlich für python. Auch wenn mir das noch zu weit weg ist

bin froh wenn ein zwei Programme mehr machen als "hi" oder Eingaben annehmen

0
Inkognito-Nutzer   16.04.2024, 09:20

Danke für die Antwort das hat Licht ins dunkle gebracht

1

Es schaut so aus, als ob du vor Py eine Sprache wie Java oder C# benutzt hast. Das gleiche hatte ich auch. Man ist gewohnt, dass die Methode nach dem operator kommt. Python ist aber ein wenig anders, und hat versucht, es Userfreundlicher zu gestalten. Python muss es nicht so wie alle andere Sprachen machen. Es hat seine Vorteile und genauso seine Nachteile.

Woher ich das weiß:Studium / Ausbildung – Offizielle Ausbildung im Bereich IT und Software
Inkognito-Nutzer   16.04.2024, 09:17

Ja hatte ich tatsächlich, aber hiermit meinte ich und bin ausgegangen von:

Es gibt doch bestimmt einen Grund für diese verschiedene Syntax, etwa dass einzelne Funktionen irgendetwas mehr können als andere..

Wie gesagt Laie am lernen

0