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

标签 python

为什么这样做 -

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

但这不——

print [].append(4)

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

最佳答案

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

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

关于python - 为什么 [].append() 在 python 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14265589/

相关文章:

python - Django 的 OpenID 服务器/提供商

javascript - 使用 Mechanize 将 HTML 注入(inject)页面

python - csv 数据可以变得懒惰吗?

python - 将文件转换为 Ascii 会引发异常

python - 无法在使用 python smtplib/email 发送的 outlook 2013 电子邮件中显示嵌入图像

python - python虚拟环境每次都需要安装包吗?

python - 自连接后使用 UDF 的 Spark 2.0 过滤器

python - 如何检查 TypeError 是否针对 NoneType

python - 使多线程池在类中工作

AIX 上的 Python : What are my options?