Befehle abkürzen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

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
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
BlackJack

Nein das geht nicht. Du könntest eine Funktion schreiben.
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Hallo

Danke für die schnelle Antwort!

Schade

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

Gruß
Andyh
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Benutzeravatar
dennda
User
Beiträge: 17
Registriert: Montag 19. November 2007, 22:07

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.)
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Hallo

Na das hört sich ja gut an.

Gruß
Andyh
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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 ;-)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

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
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

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
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

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.
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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten