为什么[] .append()在python中不起作用?

发布于 2021-01-29 18:00:55

为什么这项工作有效-

a = []
a.append(4)
print a

但这不是-

print [].append(4)

第二种情况下的输出为None。你能解释一下输出吗?

关注者
0
被浏览
142
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    append方法没有返回值。它会在适当的位置更改列表,并且由于您没有将分配[]给任何变量,因此只是“迷失在空间”

    class FluentList(list):
        def append(self, value):
            super(FluentList,self).append(value)
            return self
    
        def extend(self, iterable):
            super(FluentList,self).extend(iterable)
            return self
    
        def remove(self, value):
            super(FluentList,self).remove(value)
            return self
    
        def insert(self, index, value):
            super(FluentList,self).insert(index, value)
            return self
    
        def reverse(self):
            super(FluentList,self).reverse()
            return self
    
        def sort(self, cmp=None, key=None, reverse=False):
            super(FluentList,self).sort(cmp, key, reverse)
            return self
    
    li = FluentList()
    li.extend([1,4,6]).remove(4).append(7).insert(1,10).reverse().sort(key=lambda x:x%2)
    print li
    

    我没有重载所有有问题的方法,但是概念应该很清楚。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看