Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 22, 2011 23:16:17

volter
От:
Зарегистрирован: 2011-11-22
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Перехватить обращение к несуществующему атрибуту функции самой функцие

Добрый день(или ночь))
Возник вопрос следующего характера.
Перехватить обращение к несуществующему атрибуту функции самой функцией?
т.е. чтобы сама ф-ия test перехватила и вывела “мол извините нет такого атрибута”.

def test():
test.a=123
return test

print test().fgh

в данном случае выскочит ошибка AttributeError: ‘function’ object has no attribute ‘fgh’
Пытался перехватывать встроенной функцией __getattribute__, но что то у меня он вообще не срабатывал(
Никто не сталкивался?



Отредактировано (Ноя. 22, 2011 23:20:39)

Офлайн

#2 Ноя. 23, 2011 04:14:49

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Перехватить обращение к несуществующему атрибуту функции самой функцие

def test():
class xxx(object):
def __getattribute__(self, attr):
return attr
return xxx()

print test().fgh

Офлайн

#3 Ноя. 23, 2011 07:11:56

volter
От:
Зарегистрирован: 2011-11-22
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Перехватить обращение к несуществующему атрибуту функции самой функцие

o7412369815963
def test():
class xxx(object):
def __getattribute__(self, attr):
return attr
return xxx()

print test().fgh
Спасибо большое. А не знаете без использования классов внутри функции никак?
А то это как то выглядит накрученным искусственно.
Например отслеживать вызов __пуефеекшигеу__ самой функции?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version