[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Python oder Perl



Frank Küster:
> Thorsten Haude <debian@thorstenhau.de> 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>

Attachment: signature.asc
Description: Digital signature


Reply to: