2014-08-08 4 views
1

Я уверен, что это что-то тривиальное, но я не могу найти никакой информации из документов Python (3).Python - автоматически обновлять атрибут базового класса (псевдоним) в унаследованном классе

С учетом следующего кода, как я могу гарантировать, что атрибут класса t в базовом классе обновляется в унаследованном классе.

class DbBase: 
    table = None 
    t = table 

class Articles(DbBase): 
    table = Table(....) 

Сейчас я хотел, чтобы иметь возможность обратиться к Article.table в Article.t, а также.

Спасибо!

ответ

4

t сделать в property:

class DbBase: 
    table = None 
    @property 
    def t(self): 
     return self.table 

class Articles(DbBase): 
    table = {} # for demo purposes 

A = Articles() 
A.t # returns {} 
+2

Вероятно, хотят сеттер на 'Т * тоже. – kindall

+0

https://docs.python.org/3.4/library/functions.html#property - Спасибо! Не понял, что @property применимо к атрибутам класса. Связанный с этим вопрос с более подробными сведениями: http://stackoverflow.com/questions/7374748/whats-the-difference-between-a-python-property-and-attribute – cgons

Смежные вопросы