Декораторы свойства Python 2.6.4, не работающие

Я видел много примеров онлайн и на этом форуме того, как создать свойства в Python со специальными методами считывания и методами set. Однако я не могу получить специальный метод считывания и методы установщика выполниться, и при этом я не могу использовать @property декоратора для преобразования свойства как только для чтения.

Я использую Python 2.6.4 и здесь являюсь моим кодом. Различные методы для использования свойств используются, но никакая работа.

class PathInfo:
    def __init__(self, path):
        self.setpath(path)

    def getpath(self):
        return self.__path

    def setpath(self, path):
        if not path:
            raise TypeError

        if path.endswith('/'):
            path = path[:-1]

        self.__path = path
        self.dirname = os.path.dirname(path)
        self.basename = os.path.basename(path)
        (self.rootname, self.dext) = os.path.splitext(self.basename) 
        self.ext = self.dext[1:]

    path = property(fget=getpath, fset=setpath)

    @property
    def isdir(self):
        return os.path.isdir(self.__path)

    @property
    def isfile(self):
        return os.path.isfile(self.__path)

7
задан Community 23 May 2017 в 11:53
поделиться

1 ответ

PathInfo должен быть подклассом объекта .

Примерно так:

class PathInfo(object):

Свойства работают только с новыми классами стилей.

21
ответ дан 6 December 2019 в 08:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: