pointer.py 564 B

1234567891011121314151617181920212223242526272829303132333435
  1. class Pointer(object):
  2. def __init__(self, d):
  3. self.d = d
  4. self.indices = []
  5. @property
  6. def r(self):
  7. self.indices.append(1)
  8. return self
  9. @property
  10. def l(self):
  11. self.indices.append(0)
  12. return self
  13. @property
  14. def E(self):
  15. d = self.d
  16. for i in self.indices:
  17. d = d[i]
  18. return d
  19. # $ fun --m="&l"
  20. # (True, None)
  21. # $ fun --m="&ll"
  22. # ((True, None), None)
  23. if __name__ == '__main__':
  24. d = (3, (1,(7,2)))
  25. p = Pointer(d)
  26. print p.r.r.l.E