Вы хотели бы сделать что-то вроде этого:
class URIString(str):
_default_namespace = "default"
def __init__(self, value, namespace=_default_namespace):
self.namespace = namespace
def __new__(cls, value, namespace=_default_namespace):
return super().__new__(cls, value)
@property
def local_name(self):
return self[(self.find(self.namespace)+len(self.namespace)):]
Я использовал декоратор @property
, чтобы превратить getLocalName()
в атрибут local_name
- в python методы получения / установки считаются плохимипрактика.
Обратите внимание, что перед Python 3.x вам нужно использовать super(URIString, cls).__new__(cls, value)
.