Como eu dinamicamente cria propriedades em Python?

Suponha que eu tenha uma aula assim:

class Alphabet(object):
     __init__(self):
         self.__dict = {'a': 1, 'b': 2, ... 'z': 26}

     @property
     def a(self):
         return self.__dict['a']

     @property
     def b(self):
         return self.__dict['b']

     ...

     @property
     def z(self)
         return self.__dict['z']

Esta seria uma tarefa longa e complicada para definir e parece altamente redundante. Existe uma maneira de criar dinamicamente essas propriedades? Eu sei que você pode criar dinamicamente atributos com o setattr interno, mas eu quero ter controle sobre o acesso de leitura / gravação / exclusão (por esse motivo eu quero usar uma propriedade). Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion