Seite 1 von 1

Befehle abkürzen?

Verfasst: Montag 24. März 2008, 10:31
von Andyh
Hallo

Kann man Befehle wie "print" abkürzen?

so in etwa:

p = print
p "Hallo"

Nur das das nicht geht.
Geht das überhaupt?

Gruß
Andyh

Verfasst: Montag 24. März 2008, 10:34
von BlackJack
Nein das geht nicht. Du könntest eine Funktion schreiben.

Verfasst: Montag 24. März 2008, 10:43
von Andyh
Hallo

Danke für die schnelle Antwort!

Schade

Momentan mache ich es gerade mit einer Funktion, dachte vileicht geht es einfacher.

Gruß
Andyh

Verfasst: Montag 24. März 2008, 11:50
von dennda
Meines Wissens kannst du damit Funktionen abkürzen, nicht aber Statements. Und print ist ein Statement. Vielleicht willst du einfach bis Python 3 warten, denn dort wird print zu einer Funktion. :)

(Ob es deinen Code leserlicher für andere macht wenn du bei allseits bekannten Funktionen / Statements Abkürzungen benutzt, sei mal dahingestellt.)

Verfasst: Montag 24. März 2008, 12:33
von Andyh
Hallo

Na das hört sich ja gut an.

Gruß
Andyh

Verfasst: Montag 24. März 2008, 12:36
von Leonidas
dennda hat geschrieben:Vielleicht willst du einfach bis Python 3 warten, denn dort wird print zu einer Funktion. :)
In 2.6 schon mit ``from __future__ import print_function``. Aber ich würde mich dennoch hüten ``print()`` mit ``p()`` abzukürzen.

Verfasst: Montag 24. März 2008, 15:53
von Hyperion
dennda hat geschrieben:Meines Wissens kannst du damit Funktionen abkürzen, nicht aber Statements. Und print ist ein Statement. Vielleicht willst du einfach bis Python 3 warten, denn dort wird print zu einer Funktion. :)
Es wird ja auch wohl folgendes gemeint sein:

Code: Alles auswählen

def p(tanga):
    print tanga
#
#
#
p("Hallo Welt")
Davon abgesehen sehe ich denn Sinn darin nicht wirklich ;-)

Verfasst: Montag 24. März 2008, 17:07
von EyDu
Hyperion hat geschrieben:Es wird ja auch wohl folgendes gemeint sein:
Genau das will Andyh ja verkürzen. Gemeint ist mit denndas Aussage, dass du nur Funktionen an einen Namen binden kannst, aber keine Statements:

Code: Alles auswählen

#geht nicht
p = print

#geht
x = xrange

Verfasst: Montag 24. März 2008, 17:52
von Andyh
Hallo

Es ist auch kaum Sinn dahinter, wobei man spart 4 Buchstaben :D .

Ich wollte nur mal wissen ob es da noch einen geheimtrick gibt den ich noch nicht gefunden habe. Kämpfe mich nämlich durch die ganzen Bücher und module.

Gruß
Andyh

Verfasst: Dienstag 25. März 2008, 10:52
von sma
Mit ply4python hast du ein Rahmenwerk, um dir eigene Python-Dialekte zu bauen. Auch z.B. einen, bei dem "print" nur "p" heißt. EasyExtent ist ein weiteres Projekt, mit dem du print verkürzen könntest. Wie sinnvoll das wäre, will ich gar nicht diskutieren.

Stefan

Verfasst: Dienstag 25. März 2008, 10:58
von Hyperion
EyDu hat geschrieben:
Hyperion hat geschrieben:Es wird ja auch wohl folgendes gemeint sein:
Genau das will Andyh ja verkürzen. Gemeint ist mit denndas Aussage, dass du nur Funktionen an einen Namen binden kannst, aber keine Statements:

Code: Alles auswählen

#geht nicht
p = print

#geht
x = xrange
Ja eben! Also bastelt man sich das Statement in eine Funktion und schon kann er genau das machen!

Verfasst: Dienstag 25. März 2008, 11:50
von Leonidas
Hyperion hat geschrieben:Ja eben! Also bastelt man sich das Statement in eine Funktion und schon kann er genau das machen!
Wobei die `print`-Funktion aus Python 3.0 recht umfassend ist - sie unterstützt alle möglichen Funktionalitäten die das Print-Statement kann.

Wenn es nur um das Experimentieren geht, dann finde ich smas Vorschlag zu EE und ply4python am besten.

Re: Befehle abkürzen?

Verfasst: Dienstag 25. März 2008, 15:33
von mkesper
Andyh hat geschrieben:Kann man Befehle wie "print" abkürzen?

so in etwa:

p = print
p "Hallo"
Lol, das erinnert mich an Basic V2.0, damals schrieb man ? für print, weil das Platz im knappen Basicspeicher sparte. Sowas ist IMHO eine sehr schlechte Idee heutzutage.

Verfasst: Dienstag 25. März 2008, 15:42
von BlackJack
Die Situation war damals "besser" weil das Fragezeichen nicht dazu da war, um Speicherplatz zu sparen, sondern nur um die Eingabe zu verkürzen. Egal ob man nun '?' oder 'print' eingetippt hat, im Speicher landete das gleiche Byte und beim Auflisten des Programms gab's immer 'print' zu sehen.

Verfasst: Dienstag 25. März 2008, 15:43
von Leonidas
Leonidas hat geschrieben:Wenn es nur um das Experimentieren geht, dann finde ich smas Vorschlag zu EE und ply4python am besten.
Habe mal kurz EasyExtend 3.0b2 angetestet und muss sagen, dass ich nicht besonders begeistert bin. Es sollte trivial sein, das so anzupassen dass ``print`` ``p`` ist, aber EE will diese Änderung einfach nicht übernehmen. Vielleicht liegts an der Betaversion oder ich habe einen schlechten Tag.