[Level 2] classmethod, staticmethod, abstractmethod decorators in Python.
#!/bin/env python from abc import * class p(object): __metaclass__ = ABCMeta @abstractmethod def printz(self): pass @abstractproperty def x(self): pass class o(p): def __init__(self, n=10): self._x = n def printX(self): print self._x def printx(self): print self.x @classmethod def printy(self): print self.x @staticmethod def printz(): print 'x' @property def x(self): return self._x @x.setter def x(self, times): self._x = self._x * times @x.getter def x(self): return self._x a = o(2) a.x = 5 print a.x a.printX() a.printx() a.printy() a.printz() #o.printX() # error #o.printx() # error o.printy() o.printz()
$ ./t.py 10 10 10 <property object at 0x177a1b0> x <property object at 0x177a1b0> xWish this helps.
regards,
Stanley Huang
Comments
Post a Comment