Уведомления

Группа в Telegram: @pythonsu

#1 Июль 25, 2013 18:46:32

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

Переопределить метод присваивания у объекта

Можно и без этого обойтись, но тогда Вы не получите доступ к атрибутам класса, тут все по аналогии с self, который дает доступ к атрибутам объекта.

class classproperty(object):
    def __init__(self, fget):
        self.fget = fget
    def __get__(self, owner, cls):
	return self.fget(cls)
class Foo(object):
    s = 23
    @classproperty
    def foo(cls):
        return cls.s
print Foo.foo
если мы не будем передавать cls в fget, то не получит доступа к cls.s, а такой декоратор, согласитесь, малополезен



Отредактировано FishHook (Июль 25, 2013 18:47:06)

Офлайн

#2 Июль 25, 2013 18:49:33

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

Переопределить метод присваивания у объекта

В предыдущем примере это быле излишним. В новом примере все стало на свои места. Спасибо.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version