Frank Küster:
> Thorsten Haude <[EMAIL PROTECTED]> wrote:
>
> > In Deinem Beispiel ist <liste> ein Objekt, dem die Nachricht 'each'
> > geschickt wird. Das 'each' wiederum hat einen Parameter, nämlich den
> > Block '{ |<name>| body }'.
>
> ganz anders (und viel logischer) als was vorher jemand schrieb, dass
> nämlich each eine Funktion sei, die etwas auf/mit dem Objekt mache (also
> praktisch das Objekt als Argument bekommt), aber dann noch ein weiteres
> Argument bekommt, nämlich den Block.
Verständlich, daß Du das verwirrend findest, aber genau wie Du es
beschreibst, ist die Objektorientierung in Python implementiert:
class foo(object):
def init(self):
self.bar = 0
def getbar(self):
return self.bar
def setbar(self, bar):
self.bar = bar
...
myFoo = foo() # erzeuge Instanz von foo
foo.setbar(5) # setze bar von foo auf 5
'self' ist hier immer die Referenz auf das Objekt selbst und muß beim
Aufruf der Methode nicht angegeben werden. foo.setbar(5) wird intern
umgeformt zu setbar(foo, 5).[1] Daß der Parameter 'self' heißt, ist
reine Konvention - wenn auch eine sehr strenge.
J.
[1]: Das führt dann auch dazu, daß man am Anfang oft von Meldungen à la
'falsche Anzahl an Parametern' bekommt und nicht versteht...
--
When standing at the top of beachy head I find the rocks below very
attractive.
[Agree] [Disagree]
<http://www.slowlydownward.com/NODATA/data_enter2.html>
signature.asc
Description: Digital signature

