Seite 1 von 1
Kann man in Python eigene Anweisungen erstellen
Verfasst: Samstag 14. Oktober 2017, 22:56
von Naitsab_33
Ich mache in letzter Zeit viel mit Wurzeln also habe ich mir die Frage gestellt ob man eigene Anweisungen erstellen kann.
Normal:
x = sqrt(4)
Beispiel:
2 root 4
oder
4 root 2
Re: Kann man in Python eigene Anweisungen erstellen
Verfasst: Samstag 14. Oktober 2017, 23:41
von __deets__
Kurze Antwort: nein.
Längere: das was du beschreibst ist eine DSL - Domain specific language. Dafür gibt es durchaus Tools, aber da muss man schon ziemlich viel investieren.
Re: Kann man in Python eigene Anweisungen erstellen
Verfasst: Sonntag 15. Oktober 2017, 08:42
von bwbg
Es gibt einen binären Infix-Operator für Potenzen (**). Hierüber lassen sich auch Wurzeln darstellen.
Darüber hinaus sind Operatoren auch (nur) Funktionen. Warum sollte man eine neue Schreibweise für Funktionen einfügen wollen; von einer DSL mal abgesehen?
Re: Kann man in Python eigene Anweisungen erstellen
Verfasst: Sonntag 15. Oktober 2017, 10:28
von Sirius3
@Naitsab_33: nur wenige Programmiersprachen erlauben die Definition von Operatoren, Python nicht. Wurzelziehen ist nur eine Spezialform von Potenzieren und dafür gibt es schon einen Operator.
Re: Kann man in Python eigene Anweisungen erstellen
Verfasst: Montag 16. Oktober 2017, 10:10
von Kebap
Naitsab_33 hat geschrieben:Ich mache in letzter Zeit viel mit Wurzeln also habe ich mir die Frage gestellt ob man eigene Anweisungen erstellen kann.
Normal:
x = sqrt(4)
Beispiel:
2 root 4
oder
4 root 2
Wenn dir das Wort "sqrt" zu seltsam vorkommt (es steht für "square root" - Quadratwurzel) dann könntest du auch definieren, dass folgendes funktioniert: x = root(4)
Insofern kannst du sehr wohl eigene "Anweisungen" erstellen. Hier macht es nur wenig Sinn, weil im Grunde nur eine vorhandene Funktion umbenannt wird, sonst kommt nichts weiter dazu.
Hingegen die Schreibweise eines Funktionsaufrufes (Funktionsname, Klammer auf, Argumente, Klammer zu) zu ändern ist deutlich aufwändiger, würde ich hier nicht empfehlen. Wie kamst du auf die Idee? Übrigens willkommen an Bord

Re: Kann man in Python eigene Anweisungen erstellen
Verfasst: Montag 16. Oktober 2017, 11:00
von Sirius3
@Kebap: was heißt hier "deutlich aufwändiger"? Es geht schlich mit Python nicht.
Re: Kann man in Python eigene Anweisungen erstellen
Verfasst: Dienstag 17. Oktober 2017, 09:38
von Kebap
@Sirius3: Ich hatte den Eindruck, dass Naitsab_33 das Wort "sqrt" seltsam fand und lieber "root" schreiben wollte.
Da alle Antworten letztendlich "Geht nicht" antworteten, wir hier aber jemanden mit seinem ersten Post im Forum begrüßen dürfen, wollte ich eine Möglichkeit zeigen, wie es doch leicht geht.
Seine vorgeschlagene Schreibweisen "2 root 4 oder 4 root 2" sind ja extra mit "Beispiel" überschrieben und für mich also als Vorschlag eines Anfängers nicht direkt in Stein gemeisselt, wie man auch daran merkt, dass ihm selbst noch gar nicht klar zu sein scheint, in welcher Reihenfolge 2 und 4 dann stehen sollen.
Der Thread heißt zudem "eigene Anweisungen erstellen" und das geht mit "def" ganz wunderbar, was vielleicht noch nicht jeder Anfänger bemerkt hat.
Letztendlich ist die Schreibweise "4 hoch 0,5" als Alternative für "Quadratwurzel aus 4" ebenfalls schlau, wenn man die mathematischen Grundlagen schon versteht.
Re: Kann man in Python eigene Anweisungen erstellen
Verfasst: Dienstag 17. Oktober 2017, 11:10
von snafu
Es geht, wenn man den Quelltext der Python-Implementierung anpasst. Das ist aber eher unüblich. Die Sprache selbst unterstützt es jedenfalls nicht.
Re: Kann man in Python eigene Anweisungen erstellen
Verfasst: Dienstag 17. Oktober 2017, 22:18
von DasIch
Man muss die Python Implementierung gar nicht modifizieren. Es würde reichen in den Import Mechanismus einzugreifen wofür es APIs gibt. Man kann dann effektiv die Definition von Python Modul und PYTHONPATH beliebig erweitern.
Das einzige Problem stellt der Compiler da den man bräuchte. Sofern man nur Python leicht modifizieren möchte könnte man da aber ziemlich gut 2to3 forken und für diesen Zweck anpassen.
Re: Kann man in Python eigene Anweisungen erstellen
Verfasst: Donnerstag 19. Oktober 2017, 16:22
von pixewakb