2016-11-13 80 views
0

下面的代碼應返回「無」,但是,似乎我已經做了一些錯誤的事件:Python:導致錯誤結果的事件?

def function_that_prints(): 
    print "I printed" 
    f1 = function_that_prints() 
    print f1 

我試圖把3號線左對齊,但它仍然沒有發生。請糾正我,謝謝!

回答

0

由於第三行縮進以使其成爲函數的一部分,function_that_prints()無限期遞歸(它自己調用自己),並且python會引發RuntimeError抱怨已超出最大遞歸深度。

如果你沒有縮進你有下面的代碼段第三行:

def function_that_prints(): 
    print "I printed" 
f1 = function_that_prints() 
print f1 

# Running this will produce: 
# I printed 
# None 

聲明f1 = function_that_prints()將打印「我印」,然後設置f1None,如你所說。

然後聲明print f1將打印f1的值,即None