Re: Aller Anfang ist schwer
Verfasst: Montag 5. Dezember 2011, 09:44
@Leonidas: Bezüglich der Übergabe würde ich Dir bei der Wortwahl widersprechen. Es werden eben doch die Objekte selbst übergeben, und zwar immer. Die andere Alternative wäre, dass nicht das Objekt selbst übergeben wird, sondern eine Kopie. Und das passiert ja gerade nicht. Der Code innerhalb einer Funktion/Methode greift auf das selbe Objekt zu wie der Code ausserhalb, der es übergeben hat.
Ich denke Tom_H spricht da ein Problem an was nicht Anfänger betrifft, sondern Leute die Sprachen kennen, bei denen es verschiedene Übergabemöglichkeiten gibt, und die sich jetzt fragen wann Python nun was macht, weil man es nirgends angeben kann/muss.
Anfänger kennen diese Unterscheidung nicht, und da reicht es zu sagen, dass die Objekte an verschiedene Namen gebunden werden können, es dabei aber immer das selbe Objekt bleibt. Das sollte auch nicht so schwer zu vermitteln sein.
@snafu: Ich denke was cofi meinte war eher das man es so behandeln sollte als wäre es ein Implementierungsdetail, denn es zu benutzen führt zu schwerer verständlichem Quelltext. Man sollte möglichst immer `int()` und `bool()` hinschreiben wenn man umwandeln möchte, auch wenn das nicht nötig ist, und man sollte es ausser bei Code-Golf nicht verwenden um ``if``\s zu ersetzen. Also man sollte die Schweinereien unterlassen, die bei Forth oder BASIC als guter Stil oder clever gelten.
Ich denke Tom_H spricht da ein Problem an was nicht Anfänger betrifft, sondern Leute die Sprachen kennen, bei denen es verschiedene Übergabemöglichkeiten gibt, und die sich jetzt fragen wann Python nun was macht, weil man es nirgends angeben kann/muss.
Anfänger kennen diese Unterscheidung nicht, und da reicht es zu sagen, dass die Objekte an verschiedene Namen gebunden werden können, es dabei aber immer das selbe Objekt bleibt. Das sollte auch nicht so schwer zu vermitteln sein.
@snafu: Ich denke was cofi meinte war eher das man es so behandeln sollte als wäre es ein Implementierungsdetail, denn es zu benutzen führt zu schwerer verständlichem Quelltext. Man sollte möglichst immer `int()` und `bool()` hinschreiben wenn man umwandeln möchte, auch wenn das nicht nötig ist, und man sollte es ausser bei Code-Golf nicht verwenden um ``if``\s zu ersetzen. Also man sollte die Schweinereien unterlassen, die bei Forth oder BASIC als guter Stil oder clever gelten.
