Klasse - Verbesserungen?

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.
Antworten
Crazed
User
Beiträge: 171
Registriert: Sonntag 18. Mai 2008, 11:44

Hey,

Ich habe mal probiert mit meinem spärlichen Wissen eine Klasse zu schreiben (habe bereits eine geschrieben) und wollte wissen was ihr vom Aufbau haltet. Verbesserungen? Aufmerkungen auf uneffektiven Code? Völlig "kacke? - Weißt mich bitte darauf hin damit ich es das nächstemal besser machen kann.

Und ja - mir ist durchaus bewusst das man das auch ohne Klasse hätte machen können, ich wollts aber trotzdem:

http://paste.pocoo.org/show/53212/

Ich bin mir sicher das es viel geordneter geht, würde mich sehr über Verbesserugen freuen.

Der Zweck der klasse:

Das Script liest aus einer textdatei im selben Verzeichniss Proxy Adressen im Format IP:Port aus wechselt jeden Proxy bei einem neuen Schleifendurchlauf und klickt dann auf einen Link. Gut um bei Diebesspielen zu schummeln/proxies zu testen etc.

MfG,
CracKPod
lunar

Darf man vorsichtig fragen, wo denn der Sinn von ``_create_file`` liegt?

Zudem ist dein Exception-Handling verbesserungsbedürftig. Datei-Objekte sollten in ``finally``-Blöcken geschlossen werden.

Ausnahmen in Bibliotheksklassen sollten an den Aufrufer weitergegeben werden.

Auch könntest du ``click`` eventuell noch entschalten und weiter aufteilen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Du überschreibst das Builtin ``file``, deine Klasse ist Old-Style (erbt nicht von ``object``), außedem sind die Namen ``URL`` & ``Timeout`` nicht PEP8-konform (Hint: Kleinschreibung). Zeilen 29-32 würde ich in eine Zeile packen, so kompliziert ist das nicht, dass es da zur übersicht viel beiträgt.

Außerdem, statt Strings mit Kommas zusammenzusetzen würde ich eher String-Formatting nutzen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Und in der init-Methode kannst du "readlines" verwenden, an Stelle des splits.
Crazed
User
Beiträge: 171
Registriert: Sonntag 18. Mai 2008, 11:44

Leonidas hat geschrieben:Du überschreibst das Builtin ``file``, deine Klasse ist Old-Style (erbt nicht von ``object``), außedem sind die Namen ``URL`` & ``Timeout`` nicht PEP8-konform (Hint: Kleinschreibung). Zeilen 29-32 würde ich in eine Zeile packen, so kompliziert ist das nicht, dass es da zur übersicht viel beiträgt.

Außerdem, statt Strings mit Kommas zusammenzusetzen würde ich eher String-Formatting nutzen.
Meinst du mit erbt nicht von object das ich es so aufrufen sollte?

class Klasse(mechanize.Browser) ?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Nein, er meint:

Code: Alles auswählen

class ProxyClicker(object):
    ...
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

EyDu hat geschrieben:Und in der init-Methode kannst du "readlines" verwenden, an Stelle des splits.
Oder sogar `list()`:

Code: Alles auswählen

with open('proxylist.txt') as f:
    proxies = list(f)
Antworten