Seite 1 von 1

Klasse - Verbesserungen?

Verfasst: Freitag 23. Mai 2008, 16:25
von Crazed
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

Verfasst: Freitag 23. Mai 2008, 19:44
von 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.

Verfasst: Freitag 23. Mai 2008, 20:12
von Leonidas
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.

Verfasst: Freitag 23. Mai 2008, 21:21
von EyDu
Und in der init-Methode kannst du "readlines" verwenden, an Stelle des splits.

Verfasst: Freitag 23. Mai 2008, 21:32
von Crazed
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) ?

Verfasst: Freitag 23. Mai 2008, 21:34
von EyDu
Nein, er meint:

Code: Alles auswählen

class ProxyClicker(object):
    ...

Verfasst: Samstag 24. Mai 2008, 15:38
von Y0Gi
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)