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)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.