Python 板


LINE

請問我有個架構如下,start1底下的fun1~fun3跟start2底下的fun1~fun3 是完全一樣的內容 def start1(): fun1(): fun2(): fun3(): a1='xxx' a2='xxx' a3='xxx' def start2(): fun1(): fun2(): fun3(): fun4(): a1='xxx' a2='xxx' a3='xxx' 這樣在維護上會很麻煩,等於修改funX要一次改兩個地方,後來改成這樣測試, 但延伸一個全域變數的問題。因funX都會取用a1~a3變數,改完後勢必要把 a1~a3套global才能餵給funX,因為只是舉例沒列太多,實際上變數有數十個 有看到相關文章說global濫用會造成debug困難,這樣該如何避免funX重複 與global的濫用呢 謝謝 def fun1(): def fun2(): def fun3(): def fun4(): def start1(): fun1() fun2() fun3() global a1 global a2 global a3 a1='xxx' a2='xxx' a3='xxx' def start2(): fun1() fun2() fun3() fun4() global a1 global a2 global a3 a1='xxx' a2='xxx' a3='xxx' --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.104.34.155 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1628433415.A.DD9.html
1F:推 a367560: 看不懂為什麼重複的要寫兩次,可是感覺可以用class處理? 08/08 22:44
2F:→ piligo: 我改一下內容 start2其實有多一個fun4() 08/08 22:47
※ 編輯: piligo (106.104.34.155 臺灣), 08/08/2021 22:47:47
3F:→ piligo: 我來查class怎麼用 感謝 08/08 23:55
4F:→ aassdd926: 把a1-a4當參數? 08/09 00:24
5F:→ aassdd926: *a3 08/09 00:25
6F:→ piligo: 對耶~沒想到可以把a1~a3直接帶入function的參數 來試試 08/09 00:54
7F:推 ddavid: 如果只是要取用值,喂參數即可,還動用不到class 08/09 14:17
8F:→ ddavid: ax有持續存取需求,則就應該用class封裝起來 08/09 14:18
9F:推 shiyeh: a1a2a3 都是定值? 考慮enumerate? 08/09 20:06
10F:→ piligo: 請問ddavid ax這區實際是有包for 每一輪的ax值都不一樣 08/10 02:06
11F:→ piligo: 這樣跟您說的ax有持續存取需求是指同一件事嗎? 看完class 08/10 02:07
12F:→ piligo: 的介紹 我的腦袋就當機了 XD 08/10 02:07
13F:→ piligo: shiyeh說到enumerate我有去研究了一下這個函數 是把值多加 08/10 02:14
14F:→ piligo: 一個索引沒錯吧 但想不出要運用在哪裡 08/10 02:15
15F:推 hydrogencl: 我也覺得用class 解決 08/11 06:39
16F:推 ddavid: 如果是因為for迴圈導致的每一輪值不同,其實不建議class 08/11 11:24
17F:→ ddavid: 用到class,我會覺得情境是某些要持續保存但可變動的狀態 08/11 11:25
18F:→ ddavid: 值會被多個有關聯性的function存取,所以才用class包 08/11 11:25
19F:→ ddavid: 但只是迴圈跑一輪的話,那些變數沒有保存的必要,不是應該 08/11 11:26
20F:→ ddavid: 用class包裝那些迴圈用變數的情境 08/11 11:26
21F:推 lycantrope: function狀態不受環境改變,都可以不用class包 08/11 14:41







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燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP