2015-12-07 6 views
1

У меня есть переменная, которая представляет собой список, в котором содержится большое количество людей. что-то вроде:Вызов метода при изменении переменной

'citizens = ['John', 'Jack', 'Jill', 'Jonas']` 
#imagine hundreds of names 

Я хотел бы «связь» переменной, population к длине этого списка, так что всякий раз, когда список модифицируется, переменная population будет обновляться. До сих пор я был просто вызов функции следующим образом:

def update_population() 
    global population 
    population = len(citizens) 

, но кажется, что было бы более элегантное решение, так что это может быть автоматически срабатывает без моего явного вызова его.

+0

Вам нужен класс, в котором есть поле 'Citizens' и метод 'population', украшенный' @ property'. – senshin

ответ

4

Если это где-то в каком-то классе, вы можете сделать его собственностью, например.

@property 
def population(self): 
    return len(self.citizens) 
Смежные вопросы