Korrekter Weg um stdout stummzustellen

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

snafu hat geschrieben:Naja, für die Daten, die man hat, würde ich dann eher das Präteritum "downloaded" verwenden.
Warum sollen denn Daten an ein Verb im Präteritum gebunden werden. Konsequent angewandt würden dann so ulkige Sachen wie ``instantiated = ElaborateClassName()`` raus kommen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Meinst du, sowas wie "begin_from" würde hier eher passen? Im Grunde sage ich damit ja dem Server, ab wo er den Download starten soll. Andererseits bezeichnet es aber auch die Bytes, die vom letzten Mal schon da sind. Obwohl, an sich wäre "begin_from" vielleicht echt das Beste. Oder vielleicht auch "start_at_byte"...
BlackJack

Ich schmeisse mal 'offset' oder 'start_offset' in den Ring. :-)
lunar

Es ist schon bezeichnend, wenn man über die Namensgebung in der Lösung fast schon länger diskutiert als über das eigentliche Problem ...
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

"Offset" meint doch eher "Abweichung"...

Aha, "remaining" vielleicht? :)
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

lunar hat geschrieben:Es ist schon bezeichnend, wenn man über die Namensgebung in der Lösung fast schon länger diskutiert als über das eigentliche Problem ...
Warum? Das ist doch bereits gelöst.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

`offset` gefällt mir auch (hatte `start` oder `start_at` im Sinn, aber Letzteres ist mehr ein Name für ein Datenbank-Feld), aber `url` für `data`? Wie wäre es mit `content`? :) `received` ginge ähnlich `downloaded` auch - beides könnte aber auch die Menge in Bytes oder ein Boolean (ja, ok) sein. Passend wäre dann wieder `received_data` oder `data_downloaded`. Und das ist dann von meinem Erstvorschlag auch nicht mehr weit entfernt.

lunar: Gute Namenwahl macht guten Programmcode aus, warum sollte man da nicht ausführlich drüber elaborieren? Wo lernt man es sonst?
BlackJack

@snafu: "offset" würde ich in diesem Fall als "Versatz" übersetzen. Das ist der technische Begriff der für so etwas in der Informatik verwendet wird. Eine Anzahl Bytes oder Elemente, die zu einem bestimmten Index dazu gezählt wird. Wenn kein Index angegeben wird, dann ist in der Regel der Anfang gemeint.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

"content" ist gut. Und eigentlich nehm ich das auch immer, fällt mir gerade ein. ^^
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

BlackJack hat geschrieben:@snafu: "offset" würde ich in diesem Fall als "Versatz" übersetzen. Das ist der technische Begriff der für so etwas in der Informatik verwendet wird. Eine Anzahl Bytes oder Elemente, die zu einem bestimmten Index dazu gezählt wird. Wenn kein Index angegeben wird, dann ist in der Regel der Anfang gemeint.
Achso, das war mir nicht bekannt. Bin ja eigentlich nicht vom Fach. Gut, dann weiß ich ja jetzt welche beiden Sachen ich nehme. Und an die Funktion werde ich "bufsize" übergeben, würd ich sagen.

Code: Alles auswählen

from __future__ import with_statement
from os.path import getsize
from urllib2 import Request, urlopen

def download(url, outfile, bufbytes=1048576):
    with open(outfile, 'a') as f:
        offset = getsize(outfile)
        request = Request(url)
        request.add_header('Range', 'bytes=%d-' % offset)
        content = urlopen(request)
        while True:
            buf = content.read(bufbytes)
            if buf == '':
                break
            f.write(buf)
lunar

Wieso legen alle meine Bemerkung so negativ aus? Ich finde es einfach nur erstaunlich, wie viel Wert auf "guten" Stil gelegt wird, dass man über einfache Namen so lange Diskussionen führen kann ;) In Perl-Foren würde man höchstens über den kürzesten Hack reden ...
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

dateiBestimmungsRootDatenByte :)
BlackJack

`objDateiBestimmungsRootDatenByteVar` :twisted:
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Insbesondere in der Datenbankwelt sind LIMIT und OFFSET an der Tagesordnung.
lunar

Weil Datenbankprogrammierung ja auch so viel mit Netzwerkprogrammierung zu tun hat ;)
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Mit Programmierung allgemein :) Und auch bei der Netzwerk-Programmierung begegnet man dem Begriff "Offset", wenn man sich mit TCP/IP näher beschäftigt.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dieser Thread beginnt, langsam sinnvoll zu werden... :)
Antworten