author:headsen chen
date:2018-03-21 15:12:09
notice:created by headsen chen himself and not allowed to copy ,or you count law questions.
1,列印函式名和列印函式的執行過程的區別:
總結:列印函式名print(a),結果是把該函式的記憶體位址列印出來了。
列印函式的執行:print(a( )),列印該函式的執行程式中的print的部分,最後把return的內容也列印出來,沒有定義return的函式列印none。
擴充套件:函式只有被呼叫或者執行的時候才會產生返回值的,不呼叫的時候就是放在記憶體中的**主體的一部分。
當return中有執行的函式的返回值問題的取值
**過程解析如下:
print(b) 列印變數b(函式)的記憶體位址,不會對b函式有任何的影響,b函式不會執行。
print( b() ) :
《1》先執行b 函式 ,由於b函式沒有定義主體內容,返回空
《2》列印b函式的返回值:return a() ,由於此時的b函式在執行的,所以return裡面的函式也會執行。
《2.1》,執行 a() ,列印 111出來。
《2.2》,由於a() 函式裡面沒有定義return的值,取none作為a()函式的返回值, 也把這none return 給b函式。此時的b函式的返回值也是none,所以print(b())= none
print(a()):1 列印程式執行時的主體中的print內容
2 列印該函式執行的返回值
將a函式的返回值也做b函式的返回值
2,函式內容主體中執行:
3,在函式的return中執行:
**********===》
總結:當乙個函式執行的時候,當該函式的return內容是乙個可執行的程式的時候,該程式也會正常的執行。不過此時的返回值的概念是:列印該程式中的print部分,並列印該函式的返回值,若沒有定義返回值就返回none
return a() 的情況: 儘管這次return的是a() ,但由於b()函式並沒有呼叫,仍然還是列印兩個函式的記憶體位址
**********===》
5,函式中的 return中的內容是常量和變數(可執行的函式)的情況下的函式執行問題
return中為乙個常量時: 因為b()函式裡面是空的。而return的a是個變數,就是乙個記憶體位址
return中是乙個變數(可執行的函式),則當b函式執行時,b函式的主體和return裡面的程式都會執行,效果如下:
**********===》
6,列印傳遞引數的高階函式的返回值,一定要理解a(f)就是在執行a函式
解析:列印 a (f)函式的整個過程相當於列印不帶引數的 print(a())的過程!!!!,即a(b)函式會被執行並且列印返回值。
同理:給乙個高階函式傳參後賦值也會執行該函式,例如:
上例中的b =a(f) 分兩步理解:
1,a(f) ,相當於不帶引數的a(),意思是執行a函式,a(f) 就是匯入引數 f 的情況下執行該函式
2,b= a(f), 就是把a(f)函式執行後的返回值 賦值給b,供後續的變數b來呼叫。
如何理解python中的return
首先要了解,函式是什麼?書上可能會說函式是完成功能的模組之類的話。其實說白了,函式就是個你招來的工人。你給他一些材料,告訴他怎麼用這些材料拼裝,然後他負責把拼裝好的成品交給你。材料就是函式的引數,成品是函式的輸出,而怎麼拼裝就是你寫的函式體 了。比如這段 def worker a b,c x a b...
python中的return如何理解
首先要了解,函式是什麼?書上可能會說函式是完成功能的模組之類的話。其實說白了,函式就是個你招來的工人。你給他一些材料,告訴他怎麼用這些材料拼裝,然後他負責把拼裝好的成品交給你。材料就是函式的引數,成品是函式的輸出,而怎麼拼裝就是你寫的函式體 了。比如這段 def worker a,b,c x a b...
Python中return和print的作用及區別
print的作用是輸出資料到控制端,就是列印在你能看到的介面上 print的作用還是比較容易理解的 print 1 print asdfghj 輸出結果 1asdfghjreturn的作用之一是返回計算的值 沒有return語句 x 1y 2def add x,y z x y print add x...