Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 14, 2013 00:29:54

kozlo22
От: Беларусь, Минск
Зарегистрирован: 2012-11-01
Сообщения: 115
Репутация: +  0  -
Профиль   Отправить e-mail  

Перегрузка __getattr__ Python 3.0

Ребят, в учебнике Лутца такая задачка:

Напишите класс с именем Meta с методами, которые
перехватывают все обращения к атрибутам (как получение значения, так
и присваивание) и выводят сообщения, перечисляющие их аргументы, на
stdout.
В принципе, ничего тут сложного нет, если реализовывать это в pyton 2.7. А вот для того, чтобы сделать в это в третьей версии, как говорит автор:“необходимо явно переопределить методы __X__ перегрузки операторов”
Собсна, что это значит?

Офлайн

#2 Июнь 17, 2013 08:55:57

alexbadaloff
От: Иваново
Зарегистрирован: 2013-04-11
Сообщения: 198
Репутация: +  16  -
Профиль   Отправить e-mail  

Перегрузка __getattr__ Python 3.0

В классе есть методы по умолчанию.
Если в классе прописать, что будет делать __X__ метод, то реализация по умолчанию не будет дергаться, а будет дергаться то, что ты написал в новой реализации - это и есть перегрузка.
Про перегрузки разве у Лутца не написано? Я вроде у него же про них и читал.
Первый ответ в гугл на запрос “перегрузка метода python” : Your text to link here…



————————–
Истина где-то рядом

Офлайн

#3 Июнь 17, 2013 09:41:16

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

Перегрузка __getattr__ Python 3.0

По-моему это называется переопределение (overriding). Перегрузка (overloading) - определение метода с тем же именем, но другой сигнатурой.



Офлайн

#4 Июнь 17, 2013 10:09:48

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Перегрузка __getattr__ Python 3.0

Soteric
Перегрузка (overloading) - определение метода с тем же именем, но другой сигнатурой.
Может быть кто-то не знает, как это можно реализовать в питоне.
тут решение от бати



Офлайн

#5 Июнь 19, 2013 00:08:50

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Перегрузка __getattr__ Python 3.0

FishHook
Спасибо. Очень полезная статья. Часто приходится делать через isinstance во многих функциях.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version