"prozess-killer"

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.
problembär

Hyperion hat geschrieben:Ich persönlich finde es schade, dass man von problembär niemals (oder vorsichtig "selten") eine Form von Erkenntnisgewinn zu hören und zu spüren bekommt. BlackJack hat sich ja wirklich Mühe gegeben, ihm etwas zu *erklären*. Wieso kommt da niemals ein "Ah... jetzt habe ich verstanden, wieso das so ist und gebe zu, mich bisher geirrt zu haben"?
Oh, das hat es schon oft gegeben. Das, was Du verlangst, habe ich hier auch schon oft gesagt.
Zuletzt habe ich z.B. von BlackJack gelernt, daß es ein Modul "calendar" gibt, das unter anderem eine praktische Funktion ".isleap()" hat. Ich muß ja nicht jedesmal ausdrücklich posten, wenn ich mal was richtiges von euch übernehme.
Dein Vorwurf trifft also ebenfalls nicht zu.

Es gibt aber Fälle, in denen ihr darauf besteht, daß ich was neu lerne, was ich schon kann, und was eben nicht falsch ist. Über

Code: Alles auswählen

for i in range(len(alist)):
    alist[i] = neuerwert
haben wir schon oft geredet. Der Python-Interpreter findet's ok und wirft keinen Error, und ich halte es nach wie vor für die schnellste, praktischste, und modulfreiste Methode, das zu erreichen, was man will. Hier sehe ich überhaupt nicht ein, eine so nützliche Konstruktion durch etwas Komplizierteres und schlechter Lesbares zu ersetzen, nur weil ihr darauf besteht. Leider betreffen die meisten eurer "Empfehlungen" solche Fälle.

Übrigens geht in Perl sogar

Code: Alles auswählen

#!/usr/bin/perl

use warnings;
use strict;

my @a = ("a", "b", "c");
my $i;

foreach $i (@a) {
    $i = "x";
}

foreach $i (@a) {
    print "$i\n";
}
In Python wäre das:

Code: Alles auswählen

#!/usr/bin/python
# -*- coding: utf-8 -*-

a = ["a", "b", "c"]

for i in a:
    i = "x"

for i in a:
    print i
Und Ausgabe wäre dann nur noch dreimal "x".
Dieses Verhalten von Perl geht sogar mir zu weit, weil es nicht offensichtlich ist.
Aber soviel verlange ich ja noch nichtmal.

Ich gebe ja zu, daß BlackJack u.a. nach meinem Eindruck ziemlich gute Programmierer sind. Z.B. wenn BlackJack Assembler-Code postet, bin ich davon recht beeindruckt, weil das meine Möglichkeiten durchaus übersteigt. Das ändert aber nichts daran, daß die Gesprächskultur hier häufig verbesserungsbedürftig ist.

@deets: Daß ich Anwalt bin, lasse ich ungern durchscheinen. Wir diskutieren hier ja normalerweise keine juristischen Probleme (und dazu hab' ich auch keine Lust, weil ich das beruflich schon genug tue). Bin halt provoziert worden.
Wenn Du's genau wissen willst: Die Meinungsäußerungsfreiheit (Art. 5 GG) ist als Grundrecht zunächst ein Abwehrrecht gegen den Staat. Man kann es also normalerweise nicht unmittelbar zwischen Privaten geltend machen. Es strahlt in diese privatrechtlichen Verhältnisse nur hinein, sog. "Drittwirkung der Grundrechte". Zu beachten wäre z.B. jedoch der Beleidigungsstraftatbestand, § 185 StGB. Wird aber nur auf Antrag verfolgt. Meistens verfolgen Staatsanwälte das nicht, sondern verweisen auf das Privatklageverfahren.
Materiellrechtlich muß man auch § 193 StGB, "Wahrnehmung berechtigter Interessen" beachten. So darf ein Lehrer z.B. äußern, daß die Arbeit seines Schülers schlecht war, ohne bestraft zu werden. In diesem Bereich bewegen wir uns wohl.
Zu beachten sind hier ferner die Forenregeln. Ich glaube nicht, daß die jemand verletzt hat, ich jedenfalls nicht.
Doch wie soll man all diese Einzelheiten kurz und schnell einem juristischen Laien erklären? Von der Meinungsäußerungsfreiheit hat er jedenfalls mal was gehört.
Jedenfalls, wenn ich

Code: Alles auswählen

for i in range(len(alist)):
    alist[i] = neuerwert
benutzen möchte, könnt' ihr mir das nicht verbieten.
Und wenn ich das anderen empfehle, es auch zu benutzen, weil ich es für praktisch und effizient halte, könnt' ihr mir das auch nicht verbieten (ihr könnt lediglich sagen, daß ihr das anders seht, darüber kann man dann sachlich diskutieren und sich gegebenenfalls auf etwas einigen oder auch nicht).
Das nenne ich dann "Meinungsäußerungsfreiheit", obwohl diese wie gesagt eigentlich ein Abwehrrecht gegen den Staat ist.
Es ist nur so, daß wir hier ohne geschäftliche Interessen hobbymäßig zusammenkommen, uns als "Sportsfreunde" Duzen und hier also eigentlich ein freundliches und entspanntes Klima herrschen sollte, in dem einem keine speziellen Code-Konstruktionen aufgezwungen werden und in dem man schon gar nicht von gleich mehreren Seiten derart angefeindet wird, daß man sich veranlasst sieht, sich auf seine Rechte zu berufen.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

problembär hat geschrieben:Es gibt aber Fälle, in denen ihr darauf besteht, daß ich was neu lerne, was ich schon kann, und was eben nicht falsch ist. Über

Code: Alles auswählen

for i in range(len(alist)):
    alist[i] = neuerwert
haben wir schon oft geredet. Der Python-Interpreter findet's ok und wirft keinen Error, und ich halte es nach wie vor für die schnellste, praktischste, und modulfreiste Methode, das zu erreichen, was man will.
Mal davon abgesehen, dass ``enumerate`` lesbarer, schneller, praktischer und ebenfalls modulfrei ist: Vielleicht solltest du uns, welch ein abgeschlossenens Informatikstudium haben, mehrere Jahre in diesem Bereich arbeiten oder in dem Gebiet eine Doktorarbeit schreiben, einfach glauben, dass du falsch liegst. Es ist durchaus möglich, dass du dich als Anwalt nicht ganz so viel mit Code beschäftigst wie einige andere hier ;-)
problembär hat geschrieben:Daß ich Anwalt bin, lasse ich ungern durchscheinen. Wir diskutieren hier ja normalerweise keine juristischen Probleme.
Dann ist das genau die richtige Stelle, um mal das Trennungs- und Abstraktionsprinzip in den Raum zu werfen. Nicht weil es relevant ist, sondern weil ich es kann :D
Das Leben ist wie ein Tennisball.
BlackJack

@problembär: Die Schleife ist IMHO nicht einfacher als

Code: Alles auswählen

alist[:] = ['x'] * len(alist)
Schneller ist sie sicher auch nicht.
lunar

@problembär: Stelle Dir einmal vor, Du befindest Dich in einem Rechtsforum, in welchem Deine Fachkompetenz ob Deines Berufs unbestritten ist. Nun kommt in jenem Forum ein offensichtlicher Laie daher, stellt allerhand allenfalls halbwahre, meist aber offensichtlich falsche Behauptungen über verschiedene juristische Themen aus. Du widersprichst diesen Behauptungen mit unbestrittener fachlicher Kompetenz, allerdings mitunter eher knapp, da Deine Freizeit zu knapp oder Dir selbst zu schade ist, um kompliziertere rechtliche Materie in mehreren Beiträgen eingehend und detailliert zu untersuchen, und Deine Einwände mit zahlreichen Argumenten zu untermauern. Doch ungeachtet Deiner Einwände hält der andere seine irregeleiteten persönlichen Ansichten aufrecht, und verteidigt sich mangels fachlicher Kompetenz mit kruden Argumenten und begibt sich auf einem Kreuzzug für die Freiheit der juristischen Auslegung.

Jetzt übertrage dieses Beispiel mit vertauschten Rollen auf dieses Forum, reflektiere dabei Dein eigenes Verhalten, und beurteile unseres vor diesem Hintergrund. Merkst Du was?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

problembär hat geschrieben: Es gibt aber Fälle, in denen ihr darauf besteht, daß ich was neu lerne, was ich schon kann, und was eben nicht falsch ist.
Manchmal gibt es im Leben mehr als nur falsch oder richtig. Es gibt auch z.B. idiomatisch gut oder schlecht. Und genau darum geht es z.B. bei dem so oft zitierten Iterieren über Elemente eines Containers. Insofern hast Du eben einen idiomatisch schlechten Weg gelernt... offenbar aber noch nicht begriffen, wieso das schlecht ist und wieso man es besser machen kann bzw. wieso das besser ist. Selbst wenn Du es für Dich - wieso auch immer? - ablehnst, da Du es immer und immer wieder anderen empfiehlst, machst Du uns anderen Helfern das Leben schwerer, da wir dann immer wieder dagegen arbeiten müssen. Einfacher wäre es, wenn Du u.a. dieses Idiom endlich mal akzeptiertest und selber benutztest.

lunar hat Dein Verhalten aber schön dargestellt - vielleicht hilft das, Dir klar zu machen, was uns daran so stört.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
deets

@problembaer

Ich fasse deine Ausfuehrungen zum GG mal zusammen: du kannst *hier* dein Recht auf freie Meinungsaeusserung nicht einklagen, bestenfalls wegen Beleidigung oder aehnlichem gegen Mitglieder vorgehen.

Was aber nicht das Problem hier ist. Sondern einfach die Tatsache, dass deine Programmierkuenste beschraenkt sind. Und wir, die wir das besser koennen, Anfaenger davor warnen, die von dir vorgestellten Loesungen als beispielhaft zu nehmen. Sondern sie besser zu ignorieren. Auf verargumentierter Basis.

Insofern ist mir immer noch schleierhaft, wieso die Meinungsfreiheit anfuehrst, wenn dir hier widersprochen wird. Aber das wird wohl genauso dein Geheimnis bleiben, wie deine Weigerung, Iteration als Grundprinzip der Sprache Python zu verstehen.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

problembär hat geschrieben:Jedenfalls, wenn ich

Code: Alles auswählen

for i in range(len(alist)):
    alist[i] = neuerwert
benutzen möchte, könnt' ihr mir das nicht verbieten.
Und wenn ich das anderen empfehle, es auch zu benutzen, weil ich es für praktisch und effizient halte, könnt' ihr mir das auch nicht verbieten (ihr könnt lediglich sagen, daß ihr das anders seht, darüber kann man dann sachlich diskutieren und sich gegebenenfalls auf etwas einigen oder auch nicht).
Will nur kurz sagen, das ich den anderen Zustimme. Diese Iteration ist grausig und sieht einfach nach "Anfänger, der es nicht besser weiß" aus...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
dark-lion
User
Beiträge: 46
Registriert: Mittwoch 25. April 2012, 14:22

ok ich glaube ich werde es dann eher lassen :D
Antworten