加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 用于String的ABC?

发布时间:2020-12-16 22:17:03 所属栏目:Python 来源:网络整理
导读:我最近在集合中发现了抽象基类(ABCs),就像它们清晰,系统的方法和Mixins一样.现在我也想创建海关字符串(*),但我找不到字符串的ABC. 有UserString,但不鼓励UserDict!?从str本身派生没有Mixins?如何在重写方法中访问字符串的“数据”部分? 在某个地方,我看

我最近在集合中发现了抽象基类(ABCs),就像它们清晰,系统的方法和Mixins一样.现在我也想创建海关字符串(*),但我找不到字符串的ABC.

有UserString,但不鼓励UserDict!?从str本身派生没有Mixins?如何在重写方法中访问字符串的“数据”部分?

在某个地方,我看到了从Sequence和Hashable派生的建议,但是如果my_string中的’test’,我就无法写出来了?:!

你推荐哪种方法?

(*)原因是:
– 编写以内部定义的方式排序的字符串
– make string(作为枚举的一部分),在与枚举范围之外的值进行比较时抛出错误

最佳答案
这是史蒂文答案的一个愚蠢而快速的例子.它在Python 3中实现(即Unicode字符串,超级参数和__getitem__片段):

class MultiStr(str):
    def __new__(cls,string,multiplier=1,**kwds):
        self = super().__new__(cls,**kwds)
        self.multiplier = multiplier
        return self

    def __getitem__(self,index):
        item = super().__getitem__(index)
        return item * self.multiplier

>>> s = MultiStr(b'spam',multiplier=3,encoding='ascii')
>>> s[0]
'sss'
>>> s[:2]
'spspsp'
>>> s[:]
'spamspamspam'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读