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?
Code: 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()
Danke Taranis
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()