LINUX.ORG.RU

Перехватить момент присваивания значения переменной

 ,


0

2

Короче, есть большой проект, в нем большой класс CLASS, которому другой большой класс присваивает значение переменной id. Когда он это делает - хз. Методов не дергает, что самое противное!

Мне надо использовать эту переменную в модели MODEL класса CLASS. При инициализации класса-модели переменная id еще None. После, блин, тоже. В дестрое, содержит то, что нужно. Т.е. значение присваивается где то после инициализации и до destroy.

Вопрос - как эту переменную поймать?

Deleted

Переменной с именем id в принципе не должно быть. Может ты имеешь в виду атрибут класса?

Deleted ()

Переопределить __getattribute__?

Begemoth ★★★★★ ()

Когда он это делает - хз.

Погрепай исходники, епт. Установить аттрибут можно 18 разными способами - не гадай, возьми да посмотри сам.

anonymous ()
Ответ на: комментарий от arkhnchul

А потом выяснится, что он где-нибудь проходит по всем полям и инициализирует их. И твой __id прекрасным образом проинитится.

Miguel ★★★★★ ()
Ответ на: комментарий от arkhnchul

у него там где-то «другой большой класс» его дергает, по описанию проблемы.
дергает

Да в том и проблема, что ни кто его не дергает. Какой то мудак взял и просто так, через точечку, сука, присвоил значение. Я второй день уже ищу эту гребаную переменную, чтобы передать ее в другое место. Ни хрена я не могу найти.

Deleted ()

переопредели магический метод setattribute и почитай, с*ка, уже мануал по питону!

anonymous ()
Ответ на: комментарий от Deleted

вот для того и предлагаю сие поле «скрыть», дабы нельзя было «через точечку», и посмотреть, где таковое обращение обломится. Не, есть и другие варианты, как в питоне разделить доступ к полям класса, но чесн говоря я в оном не силен.

arkhnchul ★★ ()
Последнее исправление: arkhnchul (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.