Метод установки свойства не работает при создании класса - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь установить атрибут 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

Может кто-нибудь объяснить, что я делаю здесь неправильноа почему сеттер не вызывается?Спасибо!

...