Я пытаюсь установить атрибут name
в приложении моего класса.Атрибут name должен быть установлен в зависимости от того, является ли он zip-файлом или нет.Если это zip-файл, мне нужно вернуть распакованный файл, а не zip-файл.Вот класс:
from os.path import splitext
class Attachment(object):
def __init__(self, name):
self.__name = name
if self.__name.endswith(".zip"):
self.zip_contents = {"content":"test", "name":"testing.txt"}
@property
def extension(self):
_, ext = splitext(self.__name)
return ext.lower()
@property
def name(self):
print('Called getter')
return self.__name
@name.setter
def name(self, name):
print('Calling setter')
if name.endswith(".zip"):
self.__name = self.zip_contents["name"]
else:
self.__name = name
@name.deleter
def name(self):
del self.__name
test = Attachment("testing.zip")
print test.name
Когда я пытаюсь распечатать, я получаю следующее: test.name
Called getter
testing.zip
Может кто-нибудь объяснить, что я делаю здесь неправильноа почему сеттер не вызывается?Спасибо!