Я пытаюсь написать класс, который позволит мне записывать количество zip-файлов в определенном месте и сохранять этот список в качестве атрибута, чтобы я мог ссылаться на него несколько раз. Я не хочу, чтобы проверка на наличие zip-файлов запускалась автоматически при инициализации класса, потому что это занимает много времени (это делает больше, чем написано здесь). Я написал это, но теперь я хотел бы расширить его новыми функциями. Я хотел бы добавить две функции к нему. Во-первых, мне также хотелось бы иметь возможность перепроверить путь после установки атрибута (представьте, что я создал класс, а затем переместил больше файлов в каталог). А во-вторых, я хотел бы иметь возможность изменять каталог, в котором я ищу zip-файлы. Вот мой оригинальный класс:
class C:
def __init__(self):
self.zip_files_at_loc_ = None
self.default_path = '~/default'
@property
def zip_files_at_loc(self):
if self.zip_files_at_loc_ is None:
self.zip_files_at_loc_ = glob.glob(self.default_path+"/*.zip")
return self.zip_files_at_loc_
Это не делает две новые функции, которые я хотел бы. Я мог бы избавиться от атрибута и просто заменить его следующей функцией:
def get_zips(self, path=None):
if not path:
path = self.default_path
return glob.glob(path+"/*.zip")
Но эта информация больше не хранит информацию, поэтому мне приходится многократно пересчитывать ее. Как я могу добавить новые функции, сохраняя zip_files_at_loc
в качестве атрибута? Похоже, что подойдет простой подход получения и установки, но я не смог добавить необязательную переменную пути к подходу в этом уроке .