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

Befehle abkürzen?

Beitragvon Andyh » Montag 24. März 2008, 10:31

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: Alles auswählen

import sys

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

Beitragvon BlackJack » Montag 24. März 2008, 10:34

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

Beitragvon Andyh » Montag 24. März 2008, 10:43

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: Alles auswählen

import sys

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

Beitragvon dennda » Montag 24. März 2008, 11:50

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:

Beitragvon Andyh » Montag 24. März 2008, 12:33

Hallo

Na das hört sich ja gut an.

Gruß
Andyh
Meinen Dickschädel schon bemerkt?

Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!

Code: Alles auswählen

import sys

if sys.platform == "win32":
    print "this program only runs on operating systems!!!"
    sys.TotalError()
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 24. März 2008, 12:36

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

Beitragvon Hyperion » Montag 24. März 2008, 15:53

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: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Montag 24. März 2008, 17:07

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:

Beitragvon Andyh » Montag 24. März 2008, 17:52

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: Alles auswählen

import sys

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

Beitragvon sma » Dienstag 25. März 2008, 10:52

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: 7471
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Dienstag 25. März 2008, 10:58

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!
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 25. März 2008, 11:50

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 Modvoice
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Re: Befehle abkürzen?

Beitragvon mkesper » Dienstag 25. März 2008, 15:33

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

Beitragvon BlackJack » Dienstag 25. März 2008, 15:42

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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 25. März 2008, 15:43

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 Modvoice

Wer ist online?

Mitglieder in diesem Forum: brainstir