Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Setting(str):
- def __new__(cls, value, source):
- return super(Setting, cls).__new__(cls, value)
- def __init__(self, value, source):
- self.value = value
- self.source = source
- TypeError: The basestring type cannot be instantiated
- class Setting:
- def __init__(self, value, source):
- self.value = value
- self.source = source
- def __add__(self, rhs):
- #keeping the object immutable
- return Setting(self.value + rhs, self.source)
- class Setting(object):
- def __new__(cls, value, source):
- #pick the correct base class
- base_class = str if isinstance(value, str) else unicode
- #construct new Setting class with correct base
- new_type = type(cls.__name__, (base_class,), dict(cls.__dict__))
- return base_class.__new__(new_type, value)
- def __init__(self, value, source):
- self.value = value
- self.source = source
Add Comment
Please, Sign In to add comment