Найти - Пользователи
Полная версия: Как перехватить изменение элемента словаря/списка, в классе?
Начало » Python для новичков » Как перехватить изменение элемента словаря/списка, в классе?
1 2
Kogrom
Есть такая альтернатива наследованию:

class UserDict:
def __init__(self, dict):
self._dict = dict

def __setitem__(self, k, v):
print "setitem"
self._dict[k] = v

def __getitem__(self, k):
return self._dict[k]


uDict = UserDict({1:2, 3:4})
uDict[5] = 6
print uDict[1]
knkd
Kogrom
Есть такая альтернатива наследованию:
А что с остальными методами? :)
Kogrom
knkd
А что с остальными методами? :)
Если кому-нибудь нужны будут ещё методы, он может наследовать мой класс и добавить, ибо встроенный словарик я не сильно “заинкапсулировал”. Я показал альтернативу, которая ленивым способом позволяет добиться состояния, когда не надо бояться, что какой-то неперегруженный метод “выстрелит” внезапно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB