为什么变量不能设置为等于Python中的函数调用?

时间:2016-12-31 21:21:45

标签: python list python-3.x

请在Python命令行中解释以下Python 3示例中的c = None原因。

>>> a = [1,2]
>>> b = a
>>> c = b.append(3)
>>> print(a,b,c)
[1, 2, 3] [1, 2, 3] None

3 个答案:

答案 0 :(得分:5)

list.append()将该条目附加到位并且不返回Python作为None所采用的任何内容(Python的默认行为)。例如:

>>> def foo():
...     print "I am in Foo()"
...     # returns nothing
...
>>> c = foo()   # function call
I am in Foo()
>>> c == None
True   # treated as true

答案 1 :(得分:4)

您正在指定append的返回值None

>>> a = [1,2]
>>> b = a.append(3)
>>> b == None
True
>>>

答案 2 :(得分:3)

函数append不会返回任何内容,这就是变量中没有任何内容的原因。让我们通过一个小例子看得更清楚:

让我们说你有这个功能

def foo:
    bar = "Return this string" 
    return bar 

x = foo() 
print(x) # x will be "Return this string" 

现在让我们说你有这个功能

def foo(bar):
    print(bar) 

x = foo(33) # Here 33 will be printed to the console, but x will be None 

这是因为函数的return语句,如果你没有,函数将返回None。

append是一个函数,可以在列表中执行某些操作(在Python字符串中也是列表),并且此函数不需要返回任何内容,它只是修改列表。