Habe mir eine kleine Klasse geschrieben die von file erbt. In dieser Klasse habe ich eine Progress-Funktionalität eingebaut, z.B. zur Realisierung von Fortschrittsanzeigen.
An mein file-object kann nun eine progress Funktion übergeben werden, die ein Argument empfängt, nämlich die geschriebene Buffer-Länge. Innerhalb dieser Funktion kann dann z.B. eine Fortschrittsanzeige angetrieben werden.
Nun würde ich gerne eure Meinung dazu wissen. Ist das korrekt so wie ich das mache?
Hier nun die Klasse:
Code: Alles auswählen
class MyFile(file):
"""Special file object, with progress functionality"""
stdwrite = file.write
stdread = file.read
def __init__(self, filename, mode='r', bufsize=-1, progress_func=None):
file.__init__(self, filename, mode, bufsize)
self.progress_func = progress_func
def write(self, s):
self.stdwrite(s)
# call progress function
buflen = len(s)
self.progress_func and buflen and self.progress_func(value=buflen)
def read(self, size=-1):
s = self.stdread(size)
# call progress function
buflen = len(s)
self.progress_func and buflen and self.progress_func(value=buflen)
return s