@classmethod ganz neu entdeckt (und Namespaces)

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.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Sonntag 23. September 2007, 11:40

poker hat geschrieben:
birkenfeld hat geschrieben:
poker hat geschrieben:Das ist da doch zuviel gehacke. Dann kann man auch gleich ``class`` als namespace Nutzen. Aber dan kommen die jenigen mit ihrer "reinen" Lehre.
Ich dachte, das warst du...
Ganze Sätze Herr Birkenfeld! :D Also, was meinst du? Kann dir nicht folgen.
Ich zitiere dich:
Meiner Meinung sollte man Klassen nicht als Namensräume missbrauchen.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Sonntag 23. September 2007, 11:45

poker hat geschrieben:EDIT3: In Ruby ist eine Datei mit Ruby Code kein Modu,l wie es in Python der Fall ist! Das muss man unterscheiden (Falls du das jetzt meintest).
Nein. Ich meinte, dass du in Ruby nur einen Namespace hast und die Module einfach nur über den Constant-Lookup die Klassen suchen. Mit allen tollen Nebenwirkungen. Ist eigentlich JavaScript Module auf Drogen ;)
TUFKAB – the user formerly known as blackbird
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Sonntag 23. September 2007, 11:56

Ich habe jetzt weder Zeit noch Lust, sämtliche Posts hier durchzulesen, aber mal ein paar grundsätzliche Dinge dazu:
  • PEPs ohne Implementierung stehen immer erst mal schlechter da. Eine Implementierung à la Preprocessor ist aber keine, und taugt damit auch nichts.
  • Ein generisches PEP für ein "make"-Statement ist abgelehnt worden, siehe PEP 359.
  • Die ganze Thematik "ich brauche aber einen Namespace!!!1" kommt mir sowieso spanisch vor. Wenn du "a.b" willst, erstell dir ein Modul "a", und fertig. Ansonsten nimm "a_b" und gut is.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Sonntag 23. September 2007, 12:04

birkenfeld hat geschrieben:
  • Die ganze Thematik "ich brauche aber einen Namespace!!!1" kommt mir sowieso spanisch vor. Wenn du "a.b" willst, erstell dir ein Modul "a", und fertig. Ansonsten nimm "a_b" und gut is.
Hallo birkenfeld!

Ich brauche keinen Namespace. Ich komme mit Klassen wunderbar klar. Aber es gibt andere Programmierer, die damit nicht klar kommen, wenn man etwas was optisch zusammen gehört, einfach in eine Klasse schreibt. Ideologie hin oder her. Wenn ich dadurch einfacher zu durchschauenden und einfacher zu lesenden Quellcode produziere, dann mache ich das einfach. Und wenn es dafür ein Namespace-Schlüsselwort gäbe, dann würde ich dieses stattdessen verwenden - nur um die Nörgler und Anhänger der reinen Lehre zufrieden zu stellen.

Und hier noch der Link in dem ich das versuche zu erklären:
http://www.python-forum.de/post-78271.html#78271

lg
Gerold
:-)
[url]http://halvar.at[/url] | [url=http://halvar.at/elektronik/kleiner_bascom_avr_kurs/]Kleiner Bascom AVR Kurs[/url]
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Sonntag 23. September 2007, 12:10

Und ich verstehe das Grundproblem nicht. Nehmen wir mal dein Beispiel:

Code: Alles auswählen

class Foo:
    def bar(self):
        return "bar"
    def spam(self):
        return "spam"

foo = Foo()
print foo.bar()
print foo.spam()
Was für einen Vorteil hat es, dass du bar() und spam() mit dem Präfix "foo." ansprechen kannst, außer einer Gruppierung? Wenn es nämlich nur um die optische Gruppierung geht, tut es "foo_bar()" und "foo_spam()" einwandfrei.

Wenn du "foo.bar()" schöner findest, kannst du es ja gerne so lösen wie oben. Aber extra dafür ein neues Sprachkonstrukt einzuführen halte ich für fragwürdig.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
poker
User
Beiträge: 146
Registriert: Donnerstag 20. September 2007, 21:44

Sonntag 23. September 2007, 12:31

birkenfeld hat geschrieben:
poker hat geschrieben:
birkenfeld hat geschrieben:
poker hat geschrieben:Das ist da doch zuviel gehacke. Dann kann man auch gleich ``class`` als namespace Nutzen. Aber dan kommen die jenigen mit ihrer "reinen" Lehre.
Ich dachte, das warst du...
Ganze Sätze Herr Birkenfeld! :D Also, was meinst du? Kann dir nicht folgen.
Ich zitiere dich:
Meiner Meinung sollte man Klassen nicht als Namensräume missbrauchen.
Tja, Birkenfeld, wenn du unfähig bist Aussagen einem Kontext zuzuordnen kann ich dir auch nicht helfen. -- Der Rest in dem Thread, bis auf einige wenige, scheinen mittlerweile zu Wissen was der Topic ist, und betrachten die ersten Aussagen von mir und BlackJack zu
diesem Kontext. Weiterhin ist erkennbar das sich ab dem Zeitpunkt der Topic verändert hat und die vorher gemachten Aussagen für **diesen** Kontext nicht mehr gelten sind! Nettes Zitat dazu: "Letztendlich ist die "reine" Lehre nur soviel Wert bis man auf deren Grenzen stößt".

Für dich verständlich Ausgedrückt:
Für Kontext eins - Ja, dafür Klassen als Namensräume zu missbrauchen, wo es auch **offensichtlich** (Und das ist offensichtlich, weil Kontext zwei nicht ersichtlich; wie auch => ``class``!!) ein Modul (Was ich vorzugsweise nutze), Borg oder Singelton tut, ist mist.

Für Kontext zwei ist man an der Grenze der "reine" Lehre gestoßen und kann dafür nicht mehr als Grundlage dienen! Um vornherein die ganzen dogmatischen Diskussionen zu vermeiden, plädieren wir auf ein ``namespace``-statement -> Ein Äquivalent zu Rubys ``module``-statement. Den ``class`` weiterhin für Kontext zwei zu nutzen, führt unweigerlich immer zur gleichen Diskussion -> Modul?! ...

Verstehst du diesen kleinen aber feinen Unterscheid? Du kannst nicht einfach eine Aussage die in einem anderen Kontext gemacht wurde - und dafür vollkommen richtig ist - herausreisen und sie auf einen anderen übertragen, für den er garnicht bestimmt war und keinerlei Geltung hat, und damit Werturteilen!

Da ich nun keine Lust habe mich weiter zu wiederholen verklinke ich einfach mal auf hier

mfg
poker
User
Beiträge: 146
Registriert: Donnerstag 20. September 2007, 21:44

Sonntag 23. September 2007, 12:45

blackbird hat geschrieben: Nein. Ich meinte, dass du in Ruby nur einen Namespace hast und die Module einfach nur über den Constant-Lookup die Klassen suchen. Mit allen tollen Nebenwirkungen. Ist eigentlich JavaScript Module auf Drogen ;)
Ah O.K. :D Hab bisher keinerlei Probleme mit gehabt aber hab schon von gehört ;) Klar, sowas wollen wir nicht! :)
birkenfeld hat geschrieben:Ich habe jetzt weder Zeit noch Lust, sämtliche Posts hier durchzulesen, aber mal ein paar grundsätzliche Dinge dazu:
So jetzt pass mal auf Birkenfeld! Du nimmst dir das Recht heraus läuten (konkret mir) Aussagen in den Mund zu legen, in dem du Aussagen aus dem Kontext reist und sie einem andere zuordnest, und damit zu Werturteilen, **ohne** den thread gelesen zu haben? Weist du was das heißt? Zwei läute unterhalten sich, du kommst dazu hörst par Zeilen und labberst dann rum und legst läuten falsche Sachen in den Mund ohne den Zusammenhang zu kenne! Heftig oder?!
Weißt du was, wenn du es nicht für nötig erachtest es zu lesen steht dir auch kein Recht zu fremden läuten die Worte im Mund zu verdrehen und auch kein Werturteil!

Vielleicht sollte man das mal als Abwechslung mit dir machen?

Schade das ich nun sauer werden musste. :x
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 23. September 2007, 13:30

poker hat geschrieben:Schade das ich nun sauer werden musste. :x
Nur die Ruhe poker, ich denke nicht dass birkenfeld dich irgendwie wütend machen wollte. Er hat in seinem Post durchaus einige Aspekte reingebracht, die vorher noch nicht da waren.
Letztendlich ist die Gruppierung via ``prefix_`` am praktikabelsten, was ja auch mehr oder weniger deiner Idee von Gruppierung durch Kommentare entspricht.

@birkenfeld: Hast du eigentlich eine Strichliste, bei der du notierst wie oft du als Troll bezeichnet wurdest? Ich habe da dunkel einen sehr ähnlichen Thread in Erinnerung ;)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Sonntag 23. September 2007, 14:19

poker hat geschrieben:Für dich verständlich Ausgedrückt:
Nett von dir, danke.
Für Kontext eins - Ja, dafür Klassen als Namensräume zu missbrauchen, wo es auch **offensichtlich** (Und das ist offensichtlich, weil Kontext zwei nicht ersichtlich; wie auch => ``class``!!) ein Modul (Was ich vorzugsweise nutze), Borg oder Singelton tut, ist mist.

Für Kontext zwei ist man an der Grenze der "reine" Lehre gestoßen und kann dafür nicht mehr als Grundlage dienen! Um vornherein die ganzen dogmatischen Diskussionen zu vermeiden, plädieren wir auf ein ``namespace``-statement -> Ein Äquivalent zu Rubys ``module``-statement. Den ``class`` weiterhin für Kontext zwei zu nutzen, führt unweigerlich immer zur gleichen Diskussion -> Modul?! ...
Ist ja schön und gut, nur sehe ich keine grundsätzliche Unvereinbarkeit zwischen den "Kontexten". Der einzige Unterschied zwischen einem Singleton und einer "missbrauchten Klasse" ist doch der, dass das Singleton evtl. Daten und nicht nur Methoden hat.
Verstehst du diesen kleinen aber feinen Unterscheid? Du kannst nicht einfach eine Aussage die in einem anderen Kontext gemacht wurde - und dafür vollkommen richtig ist - herausreisen und sie auf einen anderen übertragen, für den er garnicht bestimmt war und keinerlei Geltung hat, und damit Werturteilen!
Ach Gottchen, du gehörst also auch zu diesen Leuten, die hinter jedem Satz ein vernichtendes "Werturteil" hervorlugen sehen? Oder jede Aussage bitterernst nehmen, wenn nicht drei Smileys dahinterstehen?
Ich habe jetzt weder Zeit noch Lust, sämtliche Posts hier durchzulesen, aber mal ein paar grundsätzliche Dinge dazu:
So jetzt pass mal auf Birkenfeld! Du nimmst dir das Recht heraus läuten (konkret mir) Aussagen in den Mund zu legen, in dem du Aussagen aus dem Kontext reist und sie einem andere zuordnest, und damit zu Werturteilen, **ohne** den thread gelesen zu haben?
Bis zu meinem ersten Post hatte ich das durchaus, und das hab ich auch nicht anders behauptet. Was danach folgte, hab ich nur überflogen. Der hier von dir zitierte Post enthält keinen direkten Bezug zu dir mehr.
Weist du was das heißt? Zwei läute unterhalten sich, du kommst dazu hörst par Zeilen und labberst dann rum und legst läuten falsche Sachen in den Mund ohne den Zusammenhang zu kenne! Heftig oder?!
Weißt du was, wenn du es nicht für nötig erachtest es zu lesen steht dir auch kein Recht zu fremden läuten die Worte im Mund zu verdrehen und auch kein Werturteil!
*g* Zum Thema "Werturteil" hab ich mich ja schon geäußert...
Vielleicht sollte man das mal als Abwechslung mit dir machen?

Schade das ich nun sauer werden musste.
Oh, ich werds überstehen. Mit ein paar seelischen Kratzern.
Leonidas hat geschrieben:@birkenfeld: Hast du eigentlich eine Strichliste, bei der du notierst wie oft du als Troll bezeichnet wurdest? Ich habe da dunkel einen sehr ähnlichen Thread in Erinnerung
Nein, aber vielleicht lege ich mir ein an. Gleich neben meiner Duschliste...
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
poker
User
Beiträge: 146
Registriert: Donnerstag 20. September 2007, 21:44

Sonntag 23. September 2007, 20:01

@Birkenfeld: Hehe, scheinst ja doch auch einstecken und nicht nur austeilen zu können ;) Bei Gelegenheit treffen wir uns, hauen uns par in die Fresse, gehen danach in die Kneipe und trinken ein par Bier :)
poker
User
Beiträge: 146
Registriert: Donnerstag 20. September 2007, 21:44

Sonntag 23. September 2007, 20:03

birkenfeld hat geschrieben:
Leonidas hat geschrieben:t;]@birkenfeld: Hast du eigentlich eine Strichliste, bei der du notierst wie oft du als Troll bezeichnet wurdest? Ich habe da dunkel einen sehr ähnlichen Thread in Erinnerung
Nein, aber vielleicht lege ich mir ein an. Gleich neben meiner Duschliste...
Jupp, am besten MoinMoin dafür aufsetzen, damit du es schön übersichtlich ordnen kannst :) Bei mir ganz praktikabel ;)
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Sonntag 23. September 2007, 20:05

poker hat geschrieben:@Birkenfeld: Hehe, scheinst ja doch auch einstecken und nicht nur austeilen zu können ;) Bei Gelegenheit treffen wir uns, hauen uns par in die Fresse, gehen danach in die Kneipe und trinken ein par Bier :)
Abgemacht. Wann bist du zufällig mal in Garching? :)
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
poker
User
Beiträge: 146
Registriert: Donnerstag 20. September 2007, 21:44

Sonntag 23. September 2007, 20:22

birkenfeld hat geschrieben:
poker hat geschrieben:@Birkenfeld: Hehe, scheinst ja doch auch einstecken und nicht nur austeilen zu können ;) Bei Gelegenheit treffen wir uns, hauen uns par in die Fresse, gehen danach in die Kneipe und trinken ein par Bier :)
Abgemacht. Wann bist du zufällig mal in Garching? :)
Oh, so weit? :( Bayern ist eine ganz schönes stück von mir entfernt, leider.
Antworten