Python 板


LINE

菜鳥我在學Python時,有個最大的疑惑就是: "為什麼有些函數需要有東西去接,有些不用?" 像是split函數,我學的時候是這樣用的 str=str.split(' ') 這樣才能把split後的字串存進去,而不能 str.split(' ') 就好。 但像是append函數, list.append(objctive) 就可以把物件加到list後面,而不用 list=list.append(objective) 。 我目前的理解是split函數有回傳值,而append沒有,所以一個要用=,一個不用, 不知這樣是否正確? 另外,在學這些函數時有方法知道到底要不要用=嗎? 還是只能看範例照做,或是看說明文件了? 謝謝大家~~ -- ╭─╮ ──╮ ╭─┤╭╮ ╭╭─╮╮ ╭ │ │ │ ││││││ ││││ ╰─╮ ╭─┼╮╰─┼╯││││○││││ │ │ ││ │ ││││ ││││ ╰─╯ ╰─╯╰──╯ ╰╰╯╰─╯╰╯╯ 傻瓜,我們都一樣~~ ψsagwow --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.119.153
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1514366821.A.326.html
1F:→ tedwu2001: python其實每個函式都有回傳值,不寫return也會隱式回 12/27 17:44
2F:→ tedwu2001: 傳None,所以都可以assign給某變數 12/27 17:45
3F:→ tedwu2001: 你的疑惑比較是要去瞭解函式行為是否影響到receiver 12/27 17:46
4F:→ tedwu2001: 又再可能要去瞭解mutable還有immutable,有點複雜 12/27 17:47
5F:推 KyotoAnime: str = str.split() 問題是你不一定要用str接 可以a=st 12/27 17:47
6F:→ KyotoAnime: r.split() 這樣str就還在 12/27 17:47
7F:→ tedwu2001: 不過學函式不就從看文件起?再不然就是看code這是肯定的 12/27 17:49
8F:推 KyotoAnime: 開發者考慮的也許是mutable的機率 像ls鐵定更改自己 12/27 17:50
9F:→ KyotoAnime: 的機會高 12/27 17:50
10F:→ mikapauli: list就是要用來原地修改的,不然用tuple就好 12/27 18:19
11F:→ mikapauli: 一般來說函數就是要用回傳值而非副作用運作, 12/27 18:21
12F:→ mikapauli: 只是這裡你遇到的是方法 12/27 18:22
13F:推 vi000246: 這種情況要看方法的原始碼 用久就熟悉了 12/27 18:23
14F:→ freeunixer: 因為字串不可變, list 可變.不可變的東西你當然要另傳 12/27 19:20
15F:推 mantour: 你後面要用到回傳值就去接,用不到就不用接 12/27 20:06
16F:推 mantour: 有副作用的函數比較常不用接是因為你只是要它的副作用 12/27 20:09
感謝各位的意見! ※ 編輯: sagwow (140.113.119.153), 12/27/2017 20:40:38
17F:推 Yshuan: 這應該是bound function跟unbound function 12/27 22:24
18F:推 bibo9901: 樓上不對, 兩個都是bound喔 12/28 01:04
19F:→ uranusjr: 應該是因為原 po 用的詭異變數名才讓他誤會這是 bound 12/28 02:18
20F:→ uranusjr: unbound 問題吧, 我第一眼也以為他是直接呼叫 str.split 12/28 02:18
21F:→ uranusjr: 仔細看才確定原文想表達什麼問題 12/28 02:19
22F:推 vfgce: 這個只能背了,函數式程式設計的精神是不做inplace修改,但 12/28 07:55
23F:→ vfgce: 結果就是記憶體用量大增,而傳統程式則是看你怎麼寫,大部分 12/28 07:56
24F:→ vfgce: 情況下為了省記憶體,且確定資料不需保留後面使用,就會做 12/28 07:58
25F:→ vfgce: inplace條改,所以你只能記那些回傳,那些是inplace修改... 12/28 07:59
26F:→ vfgce: R採用函數式程式設計,所以所有函數都回傳不修改原值.所以 12/28 08:01
27F:→ vfgce: 不用特別記,傳進去的東西不會被改. 而python就看程式怎麼寫 12/28 08:02
28F:→ vfgce: 有些會修改傳入資料,有些是不修改回傳新的..只能用記的 12/28 08:03
29F:推 CaptainH: immutable 和 functional 沒有必然關係 12/28 12:47
30F:→ CaptainH: 完全是設計者的考慮而已 12/28 12:48
31F:推 Sunal: 這跟functional有關?? 沒吧 同樓上就是單純設計時的考量 12/28 16:28
32F:→ Sunal: 就看怎麼用而已 12/28 16:29
33F:推 Sunal: 發現好像說一樣的東西 當我沒推文 12/28 16:32
34F:推 henry8168: 哭哭,我寫程式寫很久也是有這種疑問 O_Q 12/29 09:04
35F:推 clsmbstu: 我也是初學者 這超困擾我... 12/29 15:09
36F:→ clsmbstu: 而且有時候明明就只是想玩一下,不想修改原物件,反而還 12/29 15:13
37F:→ clsmbstu: 要多做一次.copy 12/29 15:13
38F:→ clsmbstu: function vs. method對我來說也是莫名其妙 QQ 12/29 15:16
39F:→ clsmbstu: R的method就會掛在function 再讓function吃該data type 12/29 15:18
40F:→ clsmbstu: 不會有len(list) vs. list.sort() 卻沒有sort(list) 12/29 15:21
41F:推 Sunal: 有C的指標概念應該好理解吧 只是沒接觸過的話就是要硬記了 12/29 15:35
42F:→ bibo9901: 沒有 sort() 但有 sorted 啊 12/29 15:43
43F:→ clsmbstu: 好吧 我舉了不好的例子 那再舉一個 XD 12/29 16:04
44F:→ clsmbstu: 是list.append(...) 卻不是append(list, ...) 12/29 16:05
45F:→ tedwu2001: a = [1, 2, 3, 4] 12/29 16:14
46F:→ tedwu2001: append = list.append 12/29 16:14
47F:→ tedwu2001: append(a, 5) 12/29 16:15
48F:→ tedwu2001: print(a) 12/29 16:15
49F:→ tedwu2001: 我是來當新人殺手的 12/29 16:16
50F:→ clsmbstu: :O!!! 居然還可以這樣... 12/29 21:17
51F:→ mikapauli: a.f(b) == type(a).f(a, b) 12/29 22:51
52F:推 Zundel: 函數還是方法 01/07 15:37
53F:推 smallreader: instance method第一個參數是self,所以可以這樣寫? 01/15 22:07







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP