# -*- coding: utf8 -*-

# Exemplo de alteração das funções de acesso aos atributos, gerando
# um log na saída padrão.

from time import *

class Depuracao(object):
    def __getattribute__(self, nome):
        atributo = super(Depuracao, self).__getattribute__(nome)

        # Informa que o atributo foi buscado.
        print 'Acessando atributo %s. Horário: ' % (nome),
        print strftime("%a, %d %b %Y %H:%M:%S", localtime())

        return atributo
    
    def __setattr__(self, nome, valor):
        super(Depuracao, self).__setattr__(nome, valor)

        # Informa que o atributo foi modificado.
        print 'Atributo', nome, 'modificado. Horário: ',
        print strftime("%a, %d %b %Y %H:%M:%S", localtime())



syntax highlighted by Code2HTML, v. 0.9.1