Seite 1 von 1

Python, klassen aufrufen

Verfasst: Mittwoch 28. Mai 2003, 12:08
von Chrisis
Tach leute,

ich bin noch völlig neu im Python geschäft.
Und absolviere momentan ein Praktikum, und habe vollgende Aufgaben bekommen.

1. Über aufruf einer Klasse/ eines Klassenmoduls den ur alt bekannten Text "Hallo Welt" ausgeben!!

2. Über aufruf einer Klasse, dieser direkt einen Wert (z.B."Hallo Welt") zuzuweisen. Und diesen danach aus einer Variable heraus ausgeben lassen.

3. Über aufruf einer Klasse, dieser direkt einen Wert (z.B."Hallo Welt") zuzuweisen. Und diesen danach aus einer Variable heraus verkert herum ausgeben lassen (z.B. "tleW ollaH").

Da ich noch nie zuvor Python vor den Augen hatte, weis weder wie ich eine Klasse richtig erstelle,
Hier ein versuch, aus dem Buch "Einführung in Python":

Code: Alles auswählen

class test:
    def printer(self, text):
        print text
noch weis ich,wie es auch zur Aufgabe gehört, wie ich die Klassen aus der Shell oder der Commandozeile heraus aufrufe :?:

Bitte helft mir!!
Ich hab noch eine Woche dafür Zeit!!

Ps. Sollte ein solches Thread schon irgenwo vorhanden sein, enschuldige ich mich, aber ich hab vorher gesucht und nichts gleiches gefunden(nur Sachen die ich nch nicht kapiere).

Danke im Vorraus
Christian

Nachtrag

Verfasst: Mittwoch 28. Mai 2003, 12:13
von Chrisis
Wenn ihr mir antwortet, bitte ich darum, dass es etwas erklärt ist!!
BITTE!!BITTE!!BITTE!!BITTE!!BITTE!!BITTE!!BITTE!!BITTE!!BITTE!!

Wenn ihr mir nur den Quellcode schreibt kann ich das ja immer noch nicht!!
und ich möchte schon ganz gerne Kapieren was ich schreibe, allerdings wollen die in der Firma mir nicht helfen("guck erstmal ob du das selber schaffst) und im Internet/in Foren hab ich solch simple Sachen nicht gefunden!! :?

Und nochmal VIELEN DANK im Vorraus

Verfasst: Mittwoch 28. Mai 2003, 12:27
von Glamdring
Ich versteh die Aufgabe nicht ganz

Soll all das in einem Code oder in drei Codes kommen?

Verfasst: Mittwoch 28. Mai 2003, 12:55
von Dookie
Hi Chrisis,

Code: Alles auswählen

import sys

class Text: 
    """ Klasse fuer Objekte die einen Text bekommen und ausgeben """
    def __init__(self, text): 
        """ Objekt initialisieren mit einem String """
        self.mytext = text # Attribut mytext erzeugen und auf text setzen
     
    def printer(self):
        """ Methode um Text ausgeben """
        print self.mytext 

    def rev_printer(self):
        """ gibt den Text umgedreht aus """
        tmp = list(self.mytext) # in liste wandeln
        tmp.reverse() # reihenfolge umdrehen
        res = "".join(tmp) #wieder in String wandeln
        print res

if __name__ == '__main__': # wurde das Script aus der Kommandozeile gestartet?
    if len(sys.argv) == 1: # Anzahl der Argumente ist eins dann keine Parameter
	textobjekt = Text("Hallo Welt!") # Standarttext erzeugen
    else:                  # Argument wurde mit übergeben
	textobjekt = Text("Hallo " + sys.argv[1] + "!") # Argument in Text

    textobjekt.printer()   # Text von textobjekt ausgeben lassen
    textobjekt.rev_printer() # Text umgedreht ausgeben lassen
ich hab jede Zeile kommentiert, wenn Du noch fragen hast, frag :)

speichere den Code als test.py und rufe das Programm mit "python test.py" auf. du kannst auch ein Argument mit übergeben z.B. "python test.py Du"

Weitere Infos zum Einstieg in Python findest Du hier:
http://www.way2python.de/
http://www.freenetpages.co.uk/hp/alan.g ... utcont.htm


Gruß

Dookie

String drehen

Verfasst: Freitag 30. Mai 2003, 09:54
von joerg
Nur als Tip:

Ab Python-2.3 kann man Strings auch folgendermaßen umdrehen:

Code: Alles auswählen

>>> x = 'Dies ist ein Test'
>>> y = x[::-1]
>>> y
'tseT nie tsi seiD'
Jörg

Verfasst: Freitag 30. Mai 2003, 09:56
von Chrisis
Sorry Dookie,
is echt nett, aber ich glaube ich kann damit nich umgehen. :oops:
Ich bekomme diese Fehlermeldung, ob ich es in der Linux Shell ausführe oder unter Windows in der Cmd!


Bild

Aber durch die Kommentare bin ich mit den Begriffen schonmal nen Ganzes stück weiter gekommen!!


Danke nochmal!!!

Chrisis

Verfasst: Freitag 30. Mai 2003, 10:09
von Chrisis
Sorry mit dem Bild, in der Vorschau hat es funktioniert!!

Er hat mir Diese Fehlermeldung ausgespuckt:

File "C:\Dokumente und Einstellungen\administrator\Desktop\test.py", line 22
textobjekt = Text("Hallo Welt!") # Standarttext erzeugen
^
IndentationError: unindent does not match any outer indentation level

Verfasst: Freitag 30. Mai 2003, 10:27
von Voges
Hallo!
Die Fehlermeldung als Screenshot ist etwas eigenwillig ;-). Du kannst problemlos aus der Unix-Shell oder dem "DOS-Fenster" unter Windows die Fehlermeldung rauskopieren. Z.B. im "DOS-Fenster": Bereich mit der Maus markieren und dann die Eingabetaste drücken. Dann befindet sich das Markierte in der Zwischenablage.
Chrisis hat geschrieben:IndentationError: unindent does not match any outer indentation level
Bei der Übertragung ins Forum haben die Einrückungen nicht überlebt. Richtig müsste es so aussehen:

Code: Alles auswählen

if __name__ == '__main__': # wurde das Script aus der Kommandozeile gestartet?
    if len(sys.argv) == 1: # Anzahl der Argumente ist eins dann keine Parameter
        textobjekt = Text("Hallo Welt!") # Standarttext erzeugen
    else:                  # Argument wurde mit übergeben
        textobjekt = Text("Hallo " + sys.argv[1] + "!") # Argument in Text

    textobjekt.printer()   # Text von textobjekt ausgeben lassen
    textobjekt.rev_printer() # Text umgedreht ausgeben lassen
Guck dazu mal in Deinem Buch so ab Seite 83. Da steht so das wesentliche zum Thema Blockbildung mit Einrückungen.
Jan

Verfasst: Freitag 30. Mai 2003, 10:50
von Chrisis
Vielen lieben Dank an alle die mir geholfen haben, allerdings denke ich nicht das, dies meine letzte Frage war!! :lol:


Aber ich denke da kann ich mich ja wiederholt an euch wenden!!

Und nochmal danke auch für die besonders schnelle Hilfe!!

Genug geschleimt!! :wink:

cu
Chrisis