[問題] 函式程設中鞣制(Curry)的概念

看板Python作者 (Never give up!)時間13年前 (2013/01/03 04:45), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/2 (看更多)
Hello, everyone 我是python的初學者,以下是我練習的語法 > > > d e f f u n c ( ) : . . . x = 1 0 . . . d e f g e t X ( ) : . . . r e t u r n x . . . d e f s e t X ( n ) : . . . x = n . . . r e t u r n ( g e t X , s e t X ) . . . > > > g e t X , s e t X = f u n c ( ) > > > g e t X ( ) 1 0 > > > s e t X ( 2 0 ) > > > g e t X ( ) 1 0 > > > 我不太懂的是當setX(20),為什麼getX()=10? 我認為我應該還是不懂curry的概念~煩請高手幫我解答以上的問題。感謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 143.215.126.20

01/03 09:56, , 1F
你這個跟curry無關吧= =
01/03 09:56, 1F

01/03 10:59, , 2F
你想做的是closure,curry是函數的特化。
01/03 10:59, 2F

01/03 20:58, , 3F
如同版友說的, 你試圖做的效果是closure, 之所以會這樣
01/03 20:58, 3F

01/03 20:59, , 4F
setX內的x是local variable, 造成variable shadowing
01/03 20:59, 4F
文章代碼(AID): #1Gv9nvsU (Python)
文章代碼(AID): #1Gv9nvsU (Python)