I metodi sono funzioni che vengono chiamate usando la notazione attributo. Ne esistono di due tipi: metodi built-in (come append() su liste) e metodi di istanze di classe. I metodi bult-in vengono descritti con i tipi che li supportano.
L'implementazione aggiunge due attributi speciali in sola lettura per
i metodi delle istanze di classe: m.im_self � l'oggetto
sul quale il metodo opera, e m.im_func � la funzione che
implementa il metodo. La chiamata m(arg-1,
arg-2, ..., arg-n) � completamente
equivalente alla chiamata m.im_func(m.im_self,
arg-1, arg-2, ..., arg-n).
I metodi delle istanze di classe sono sia legati che
slegati, a seconda che il metodo attraverso con il quale vi si
accede sia rispettivamente un'istanza o una classe. Quando un metodo
� slegato, il suo attributo im_self sar� None e se
chiamato, un esplicito oggetto self dovr� essere passato come
primo argomento. In questo caso, self deve essere una istanza
del metodo di classe slegato (o una sotto classe di quella classe),
altrimenti verr� sollevata un'eccezione di tipo TypeError.
Come gli oggetti funzione, gli oggetti metodi accettano gli attributi
arbitrari che possono venire loro forniti.
Tuttavia, poich� i metodi degli attributi vengono attualmente
immagazzinati nell'oggetto funzione sottostante (meth.im_func),
impostare i metodi degli attributi, per metodi sia legati che slegati,
non � consentito. Tentare di impostare un metodo per un attributo
sollever� un'eccezione TypeError.
Per impostare i metodi degli attributi, � necessario assegnarli
esplicitamente nell'oggetto funzione sottostante:
class C:
def method(self):
pass
c = C()
c.method.im_func.whoami = 'my name is c'
Vedete il Manuale di riferimento di Python per ulteriori informazioni.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.