Uups,
Kaum ist man mal kurz wech und schon startet Ihr stressige
Diskussionen. Nein Ernst beiseite -
Ich komme eben von PHP und arbeite mich jetzt erstmal ein Python ein.
Zu Zope habe Ich schon rübergeschielt. Aber wie Ihr an meinem Postings sehen könnt, quälen mich noch die Basics, wie Variablenübergabe in Funktionen externer Herkunft.
Aber an eurem Postings sehe Ich, dass Python eine sehr lebendige Sprache ist, in die es sich lohnt, einzuarbeiten.
Aber wiegesagt erstmal Basics ...
Grüsse
Taranis
Frage mit Klasse
Taranis hat geschrieben:Hallo Ich wieder,
Nachdem Ich nun als Anfängerin dank eurer Hilfe das Einsteigen einigermassen verinnerlicht habe, stellen sich für mich die nächsten Fragen.
Code in Klassen schreiben.
Wie packt man z.B. den nachfolgenden Code in eine Klasse?
Wie ruft man den Code auf?
Kann man den Code als Klasse auch in einen externen File packen?
Danke TaranisCode: Alles auswählen
import os, zipfile Zip = zipfile.ZipFile("test.zip") for dirname,dirs,filenames in os.walk("verzeichnis_zum_zippen"): for filename in filenames: Zip.write(os.path.join(dirname,filename)) Zip.close()
Hallo, als GUI empfehle ich wx(Widgets) zusammen mit BOA Construktor.
Ist aber doch ein bischen komplexer, da du dich dann auch um stellenweise mehr kümmern musst als den funktionsrelevanten programmteil.
Als Klasse könnte das so aussehen :
Die __init__ ist eine spezielle methode, musst du nicht unbedingt nehmen in der form, normalerweise müsstest du auch noch super() anwenden um die original __init__ von der Klasse "object" auszuführen, da diese aber leer ist fällt das weg.
Nicht in jedem fall lohnt sich eine Klasse, das hier wäre einer derjenigen
Code: Alles auswählen
class Zipper(object):
def __init__(Target = None, Source = None):
self.Target = Target
self.Source = Source
def SetTarget(Target):
self.Target = Target
def SetSource(Source):
self.Source = Source
def DoWork()
Zip = zipfile.ZipFile( self.Target )
for dirname,dirs,filenames in os.walk( self.Source ):
for filename in filenames:
Zip.write(os.path.join(dirname,filename))
Zip.close()
# Benutzen mit :
def TestZipper():
object = Zipper()
object.SetTarget ( "test.zip" )
object.SetSource ( " verzeichnis_zum_zippen" )
object.DoWork()
#alternativ, da die init methode überschrieben wurde:
object=Zipper("test.zip","verzeichnis_zum_zippen")
object.DoWork()
TestZipper()
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Solche Leerzeichen bei den runden Klammern hatte ich mir auch mal angewöhnt und leider ist in PyLucid Quellentext auch einige da von noch drin... Sie entsprechen aber nicht dem allgemeinen StyleguideMad-Marty hat geschrieben:Code: Alles auswählen
... Zip = zipfile.ZipFile( self.Target ) for dirname,dirs,filenames in os.walk( self.Source ): ... object.SetTarget ( "test.zip" ) object.SetSource ( " verzeichnis_zum_zippen" ) ...