为什么这行得通 -
a = []
a.append(4)
print a
但这并不——
print [].append(4)
第二种情况的输出是None
. 你能解释一下输出吗?
为什么这行得通 -
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
我没有重载所有有问题的方法,但概念应该很清楚。
该方法append
不返回任何值,或者换句话说,只有None
a
是可变的并且它的值被改变了,那里没有任何东西可以返回。
追加回报None
。
从你的例子:
>>> print a.append(4)
None