wbudowane funkcje python a funkcje magiczne i nadpisywanie [duplikat]

Możliwy duplikat:
Wyszukiwanie operatora przechwytującego metaklasy
Jak mogę przechwytywać wywołania metod „magicznych” Pythona w nowych klasach stylów?

Rozważ następujący kod:

class ClassA(object):
    def __getattribute__(self, item):
        print 'custom__getattribute__ - ' + item
        return ''
    def __str__(self):
        print 'custom__str__'
        return ''

a=ClassA()
print 'a.__str__: ',
a.__str__

print 'str(a): ',
str(a)

Wynik był dla mnie zaskakujący:

a.__str__:  custom__getattribute__ - __str__
str(a):  custom__str__
Nie jeststr(a) ma być przyporządkowany do magicznej metodya.__str__()?Jeśli usunę ten zwyczajClassA.__str__(), następnieClassA.__getattribute__() nadal nie łapie połączenia. Dlaczego?

questionAnswers(2)

yourAnswerToTheQuestion