comportamento do conceito de descritor em python (confuso)

Eu entendi descritor python mas eu tenho um pouco de confusão sobre isso ..

se você tiver um descritor de classe da seguinte forma

class Descriptor(object):
    def __get__(self, instance, owner):
        print 'getting'
        return self.value
    def __set__(self, instance, value):
        print 'setting'
        self.value = value
    def __delete__(self, instance):
        print 'deleting'
        del self.value

e uma classe cujos atributos nós queremos gerenciar é algo assim.

class Test(object):
    name = Descriptor()
    def __init__(self, name):
        print 'init test'
        self.name = name

quando eu crio objeto de classe Teste e faço algo que me dá resposta assim ...

t = Test('abc')
init test
setting
>>> t.name
getting 
'abc'
>>> del t.name
deleting
>>> t
<__main__.Test object at 0x013FCCD0>
>>> t.name
getting 

Agora eu quero ter uma classe Test1 algo assim ..

class Test1(object):
    def __init__(self, value):
        print 'init test1'
        self.name = Descriptor()
        self. value = value

e se eu criar objeto do Test1 e tentar acessar o atributo da instância do Test1, eu recebo uma saída assim:

t1 = Test1(12)
t1.name
>>> getting
>>> 12
>>> t1.name = 30
>>> setting

Q 1) minha pergunta é que é esse atributo de nome declarado no init de Test1, está vinculado a instância de Test1 ou não ... porque quando tento obter o atributo dicionário de t1, ele retorna o dict vazio ...

t1.__dict__
>>> {}

mesmo para a instância de teste de classe t

 t.__dict__
 >>> {}

Quando eu adiciono um novo atributo a qualquer uma dessas instâncias, assim ...

 t.some = 'some'
 >>> t1.some = 'some'

e, novamente, se eu tentar acessar o dicionário de atributos, isso me dá apenas o que eu adicionei agora. Agora, todos os atributos de instância

t.__dict__
>>> {'some': 'some'}
>>> t1.__dict__
>>> {'some': 'some'}

Q 2) Então, qual é a diferença entre os atributos da instância definidos no init (como nome e valor da variável na classe Descriptor e Test) e os atributos definidos após a criação da instância (como a variável t.some).

Q 3) Como a classe Test é diferente da classe Test1.

questionAnswers(1)

yourAnswerToTheQuestion