看板 Python 關於我們 聯絡資訊
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
mars90226:你這個跟curry無關吧= = 01/03 09:56
tcling:你想做的是closure,curry是函數的特化。 01/03 10:59
beatitude:如同版友說的, 你試圖做的效果是closure, 之所以會這樣 01/03 20:58
beatitude:setX內的x是local variable, 造成variable shadowing 01/03 20:59