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

python – len如何工作?

发布时间:2020-12-20 12:16:17 所属栏目:Python 来源:网络整理
导读:len如何在 Python上工作? 看看这个例子: class INT(int): passclass STR(str): def __len__(self): return INT(42)q = STR('how').__len__()print q,type(q)q = len(STR('how'))print q,type(q) 输出是: 42 class '__main__.INT'42 type 'int' 我如何处理
len如何在 Python上工作?

看看这个例子:

class INT(int):
    pass

class STR(str):

    def __len__(self):
        return INT(42)

q = STR('how').__len__()
print q,type(q)
q = len(STR('how'))
print q,type(q)

输出是:

42 <class '__main__.INT'>
42 <type 'int'>

我如何处理它,以便len返回一个INT实例?

答案表明唯一的解决方案是覆盖len

这是我的替代实现.它似乎没有什么害处.

original_len = len
def len(o):
    l = o.__len__()
    if isinstance(l,int):
        return l
    original_len(o)

解决方法

我不认为你可以,除非你写自己的len. 内置len总是返回一个int.

(编辑:李大同)

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

    推荐文章
      热点阅读