Guest User

Untitled

a guest
Dec 13th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. class Setting(str):
  2.  
  3. def __new__(cls, value, source):
  4. return super(Setting, cls).__new__(cls, value)
  5.  
  6. def __init__(self, value, source):
  7. self.value = value
  8. self.source = source
  9.  
  10. TypeError: The basestring type cannot be instantiated
  11.  
  12. class Setting:
  13. def __init__(self, value, source):
  14. self.value = value
  15. self.source = source
  16.  
  17. def __add__(self, rhs):
  18. #keeping the object immutable
  19. return Setting(self.value + rhs, self.source)
  20.  
  21. class Setting(object):
  22.  
  23. def __new__(cls, value, source):
  24. #pick the correct base class
  25. base_class = str if isinstance(value, str) else unicode
  26. #construct new Setting class with correct base
  27. new_type = type(cls.__name__, (base_class,), dict(cls.__dict__))
  28. return base_class.__new__(new_type, value)
  29.  
  30. def __init__(self, value, source):
  31. self.value = value
  32. self.source = source
Add Comment
Please, Sign In to add comment