Я читаю «Погружение в Python», и приведенный ниже пример дает пояснения для каждой строки, но у меня все еще возникают проблемы с интерпретацией значения.Может кто-нибудь пролить немного света на цифры 1 и 2. Я не понимаю # 1, когда он начинает рассказывать об основной технике этого класса-обёртки ... и т.д ... # 2 Я вообще не понимаю этого.Пожалуйста, помогите и обучите пожалуйста.
Пример 5.10.Нормальные методы UserDict
def clear(self): self.data.clear() ❶
def copy(self): ❷
if self.__class__ is UserDict: ❸
return UserDict(self.data)
import copy ❹
return copy.copy(self)
def keys(self): return self.data.keys() ❺
def items(self): return self.data.items()
def values(self): return self.data.values()
❶ clear - это обычный метод класса;это общедоступно, чтобы быть вызванным кем-либо в любое время.Обратите внимание, что clear, как и все методы класса, имеет в качестве первого аргумента self.(Помните, что вы не включаете self при вызове метода; это то, что Python добавляет для вас.) Также обратите внимание на базовую технику этого класса-обертки: сохраните настоящий словарь (данные) в качестве атрибута данных, определите все методычто реальный словарь имеет, и каждый метод класса перенаправить на соответствующий метод в реальном словаре.(Если вы забыли, метод очистки словаря удаляет все его ключи и связанные с ними значения.) Method Метод копирования реального словаря возвращает новый словарь, который является точной копией оригинала (все то же значение ключа)пар).Но UserDict не может просто перенаправить на self.data.copy, потому что этот метод возвращает реальный словарь, и вам нужно вернуть новый экземпляр того же класса, что и self.