python定義函式時的預設返回值

2022-08-20 19:30:16 字數 1820 閱讀 3771

python定義函式時,一般都會有指定返回值,如果沒有顯式指定返回值,那麼python就會預設返回值為none, 即隱式返回語句: return none

執行如下**

def

now():

print('

2018-03-20

')

直接執行函式的話,結果為:

但是如果列印函式的話

print(now())
列印結果為:

相當於執行了

def

now():

print('

2018-03-20')

return

none

print(now())

如果不想要有none,那麼就要新增返回值

def

now():

return

'2018-03-20

'print(now())

但是如果**改成:

defnow():

return print('2018-03-20')

print(now())

>>> print

in function print>

列印結果還是帶有 none,個人猜想如下

編輯於 2018-03-30 12:53

print 函式的列印結果

>>> print()
列印為空

>>> print(print

())none

由上述**,可以猜測該**的執行順序

先執行括弧裡的 print() 列印的內容為空,print函式執行完後自帶換行,接著再執行括弧外的 print 函式,即列印括弧裡的print() 的返回值,由此可知 print 函式的預設返回值為 none

再看如下**

>>> print(print('

123'

))123none

執行順序如上述所猜測的一樣

>>> def

now():

...

pass

...>>> print

(now())

none

定義的函式 now, 函式體為空,未設定返回值,所以 now() 執行的返回值為 none 被列印出來

>>> def

now():

...

return

print

...>>>now

>>>now()

in function print>

>>> print

(now)

現在 now 函式返回值是 print函式,所以列印 now() 就是返回的 print 函式

>>> def

now():

...

return

print('你好'

)...

>>> print

(now())

你好none

分析上述**

先執行括弧裡 now(),執行now函式的語句塊,now 函式只有乙個返回值 print('你好'),所以先列印出字串 '你好',由於 print函式的預設返回值是 none,最外層的 print 函式就把裡層的 print 函式的返回值也列印了出來

python定義函式時預設引數注意事項

如果在呼叫乙個函式時,沒有傳遞預設引數,則函式內的預設引數是對函式的預設引數屬性 defaults 的引用,如def func arg1 呼叫func時如果沒有傳參,上面的arg1就是func.defaults 0 的引用 沒傳遞預設引數,會發生以下情況 這樣在有些情況下會導致邏輯出錯的,例如 de...

python定義函式時預設引數注意事項

如果在呼叫乙個函式時,沒有傳遞預設引數,則函式內的預設引數是對函式的預設引數屬性 defaults 的引用,如呼叫func時如果沒有傳參,上面的arg1就是func.defaults 0 的引用 沒傳遞預設引數,會發生以下情況 這樣在有些情況下會導致邏輯出錯的,例如 func arg1 is not...

Python定義函式預設引數

慕課網 定義函式的時候,還可以有預設引數。例如python自帶的 int 函式,其實就有兩個引數,我們既可以傳乙個引數,又可以傳兩個引數 int 123 123 int 123 8 83int 函式的第二個引數是轉換進製,如果不傳,預設是十進位制 base 10 如果傳了,就用傳入的引數。可見,函式...