Re: [python] спрятанные члены класса
От: Daevaorn Россия  
Дата: 30.09.09 14:34
Оценка: 4 (1)
Здравствуйте, neFormal, Вы писали:

F>столкнулся с такой интересностью в django:

F>
F>class UserInfo(models.Model):
F>    birthday = models.DateField('birthday date')
F>


F>вроде обычный класс.. наследуется от кого то, содержит какой то мембер..

F>но dir(UserInfo) этот мембер не показывает, появляется он только у экземпляра класса после инстанцирования..

F>как можно получить такое поведение?.

F>в джанге производятся какие то игры с метаклассами (собственно, у models.Model есть __metaclass__), но в этом я пока не разобрался.. может коллективный разум подскажет?.


Да, метакласс вынимает поля из неймспейса класса и складывает их в специальное место (_meta.fields). Чтобы добиться такого поведения, ммм... надо написать похожий метакласс.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.