尝试获得一个类似的课程:
>>> original = u"ABCD-123-foo"
>>> suffix = SuffixComparingUnicodeString("foo")
>>> suffix == original # if original ends with suffix, True
True
我知道这很愚蠢。请耐心等待。
无论如何,我无法弄清楚如何从str
对象中获取实际的,呃,字符串(不是unicode
,记住)。我可以这样做就好了:
>>> class SuffixComparingUnicodeString(unicode):
... def __init__(self, x):
... super(SuffixComparingUnicodeString, self).__init__(x)
... self._myval = x
... def __eq__(self, other):
... return isinstance(other, unicode) and other.endswith(self._myval)
...
>>> SuffixComparingUnicodeString("foo") == u"barfoo"
True
如果不自行存储该值,我该怎么办呢? unicode
将其基础字符序列称为什么?
答案 0 :(得分:2)
由于您是子类unicode
,SufficComparingUnicodeString
的实例通常可以像任何其他Unicode字符串一样使用。因此,您可以在other.endswith(self)
实施中使用__eq__()
:
class SuffixComparingUnicodeString(unicode):
def __eq__(self, other):
return isinstance(other, unicode) and other.endswith(self)