Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 23, 2015 15:03:15

Period
Зарегистрирован: 2015-10-07
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Как обратиться к несуществующему методу объекта

Прочитал Руководство по магическим методам в Питоне на Хабре, но всё равно не понял. Для атрибутов есть функция, а для методов - нет?

Есть ли какая-нибудь магия, чтобы обратиться к несуществующему методу объекта?
Допустим я вызываю obj.noexist_method(params). Как мне в объекте получить имя метода “noexist_method” и его аргументы “params”?

Офлайн

#2 Дек. 23, 2015 15:46:12

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как обратиться к несуществующему методу объекта

class ta:
    def __getattr__(self,key):
        def f(*args,**kvrgs):
            print(key)
            print(kvrgs)
        return f
a=ta()
>>> a.aaa(a=3)
aaa
{'a': 3}
Никакой магии как видите. НО, питон это не javascript, зачем такое решение? Выглядит совсем бесполезным.



Отредактировано doza_and (Дек. 23, 2015 15:48:04)

Офлайн

#3 Дек. 23, 2015 15:46:43

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Как обратиться к несуществующему методу объекта

> Для атрибутов есть функция, а для методов - нет?

Чем атрибут не метод?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version