iT邦幫忙

0

Python 函数中的 return

as900 2019-07-12 16:25:2813765 瀏覽
  • 分享至 

  • xImage

https://ithelp.ithome.com.tw/upload/images/20190712/20099494zEKuJ8L6N7.png
在图片这行代码中,为什么是用 return long_name.tital(), 而不是使用 print(long_name.title())?

什么情况下,需要使用 return?

回傳 long_name.title() 值給上一層的呼叫者 print ( )

我也習慣在def .裡回傳值給上一層處理,只是個習慣的問題,無關有什麼特殊規矩
有回傳值,上一層才能知道工作到底完成到哪裡,隨時都可以print,有完成沒完成都不知道,這不是個好習慣
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
froce
iT邦大師 1 級 ‧ 2019-07-12 16:29:49
最佳解答

幾乎所有語言,return都是告訴電腦要回傳「值」。

def fun1():
    print("fun1裡面", "ok")
    
def fun2():
    return "ok"
    
a = fun1()
b = fun2()
print("fun1外面:", a)
print("fun2外面:", b)

多玩玩多觀察有什麼不同你就知道了。

0
小魚
iT邦大師 1 級 ‧ 2019-07-12 16:35:35

def 定義一個函式

函式可以沒有回傳值(像__init__),
也可以有回傳值(像get_descriptive_name),

至於什麼時候需要回傳值(return),
那是由寫程式的人去判斷的,
你希望他回傳值的時候就回傳.

python跟javascript和php有點像,
宣告函式不用指定要不要回傳值,
如果是像C++, C#這些程式語言,
就一定要指定要不要、要什麼型態的回傳值.

看更多先前的回應...收起先前的回應...
froce iT邦大師 1 級 ‧ 2019-07-12 17:10:46 檢舉

補充一下,這就是靜態和動態語言的差別了。
靜態語言不管什麼變數都要先宣告類型。所以之只能傳回特定類型,因為回傳值你通常也是存到變數裡。

動態語言因為不用指定類型,所以回傳值也不定,可以某個狀況下傳字串,某個狀況下傳 None,某個狀況下傳list....

dragonH iT邦超人 5 級 ‧ 2019-07-12 17:16:42 檢舉

這個時候沒先檢查就直接用

就會崩給你看/images/emoticon/emoticon07.gif

froce iT邦大師 1 級 ‧ 2019-07-12 17:29:03 檢舉

回傳值型態能變很爽,一直變一直爽,可是團隊合作時,亂寫會被送入火葬場。XD

小魚 iT邦大師 1 級 ‧ 2019-07-12 17:32:17 檢舉

很爽,
可以陰隊友.

dragonH iT邦超人 5 級 ‧ 2019-07-12 17:45:46 檢舉

一時變值一時爽 一直變值一直爽/images/emoticon/emoticon37.gif

0
dragonH
iT邦超人 5 級 ‧ 2019-07-12 16:51:57

codepen

這應該什麼語言都一樣

我就用 js 當範例了

簡單來說你會用到 function 執行完的結果

那就可以用 return

如果你的需求

在 function 裡就能解決

那不用 return 影響也不大

0
paicheng0111
iT邦大師 5 級 ‧ 2019-07-13 12:25:29

這裡的

return long_name.title()

相當於

get_descriptive_name = long_name.title()

我要發表回答

立即登入回答