Я видел много примеров онлайн и на этом форуме того, как создать свойства в 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)
PathInfo должен быть подклассом объекта .
Примерно так:
class PathInfo(object):
Свойства работают только с новыми классами стилей.