找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
感激所有對伊莉作出奉獻的人認識好友、聊天,分享生活趣事安全提問(回答) 和 永久尊貴會員 事宜
旬果無碼 megrpggdoffice按摩adobe
河北采花梓梓無bp6校則女子夢幻西女装探偵吾人

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁/無修正]魔都精兵

[繁]迷宮飯11-

[繁]肌肉魔法使-MASHL

✡ 斗破蒼穹 年番/鬥

[繁]香格里拉・開拓異

老媽沒收兒子的手機
電腦新資訊電腦軟體討論電腦軟體資訊分享電腦硬體討論電腦硬體資訊分享電腦萌化版電腦系統 OS 討論電腦程式設計
電腦設計技術交流圖像設計及交流各類下載工具教學寬頻上網討論
查看: 14251|回復: 6

[問題] 關於Python內部函數的問題,麻煩前輩指導(已解決,感謝各位前輩)[複製鏈接]

chialewang 該用戶已被刪除
發表於 2019-8-23 11:36 PM|顯示全部樓層
本帖最後由 chialewang 於 2019-8-27 10:59 AM 編輯

各位前輩 您們好:

線上教學他打的是以下的程式碼



我照keyin
  1. def FunX(x):
  2.     def Fun(y):
  3.         return x * y
  4.     return FunY
  5. i = FunX(8)
  6. i(5)
複製代碼
但卻顯示 NameError: name 'FunY' is not defined

我不曉得哪裡錯了?怎樣都顯示不出他說的 8*5 = 40  

此外,此單元叫"閉包"?
聽起來好像怪怪的,好像大陸用語
真的叫閉包嗎? 還是台灣有更正確的說法

麻煩前輩們指點一下

...
瀏覽完整內容,請先 註冊登入會員
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊

點評

snowflying 你裡面的打成 Fun 而不是 FunY。英文叫 Closure  發表於 2019-8-24 12:41 PM

使用道具檢舉

chialewang 該用戶已被刪除
發表於 2019-8-24 08:08 PM|顯示全部樓層
snowflying 前輩 您好:

您說:"你裡面的打成 Fun 而不是 FunY"
是指第二行嗎?

我改成def FunY(y):
依然不行耶
  1. def FunX(x):
  2.     def FunY(y):
  3.         return x * y
  4.     return FunY
  5. i = FunX(8)
  6. i(5)
複製代碼
請前輩指教 感恩

...
瀏覽完整內容,請先 註冊登入會員

點評

snowflying 我這邊測試是可以的,有錯誤可以附上錯誤訊息  發表於 2019-8-24 11:40 PM

使用道具檢舉

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
155
積分
1291 點
潛水值
47805 米
發表於 2019-8-25 10:09 AM|顯示全部樓層
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
本帖最後由 tryit244178 於 2019-8-26 04:28 PM 編輯

改成這樣試試
用print()把結果顯示出來
  1. >>>def FunX(x):
  2. ...   def FunY(y):
  3. ...      return x*y
  4. ...   return FunY
  5. ...
  6. >>>i = FunX(8)
  7. >>>print(i)
  8. >>>print(type(i))
  9. >>>print(i(5))
  10. >>>print(FunX(8)(5))
複製代碼












補充內容 (2019-8-25 10:13 AM):
格式一直被吃掉...放棄編輯orz






補充內容 (2019-8-26 04:29 PM):
搞…搞定了_(:з」∠)_...
瀏覽完整內容,請先 註冊登入會員

點評

tryit244178 第5行是重點  發表於 2019-8-26 04:36 PM
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
340
積分
1143 點
潛水值
21220 米
發表於 2019-8-25 05:28 PM|顯示全部樓層
在 python 的例子中… 如果看到 >>> 開頭。

就表示它是在 python shell 裡執行的。
如果一行中只有變數,會將它的值印出來…  (還有沒有其它的詳細規則,我不清楚。)
所以範例中 只寫 i(5) ,但實際上會有 「print(i(5))」的效果。
猜想可能是樓主不在 python shell 環境,覺得沒有東西輸出感到奇怪…

閉包這個詞,在台灣也有人在用吧!至於是不是對岸用語,老實說我覺得已不重要了。
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

chialewang 該用戶已被刪除
發表於 2019-8-27 10:50 AM|顯示全部樓層
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
chialewang 發表於 2019-8-24 08:08 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

snowflying 前輩 您好:

您說:"你裡面的打成 Fun 而不是 FunY"

snowflying 前輩 您好:

沒有錯誤訊息
...
瀏覽完整內容,請先 註冊登入會員





成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

chialewang 該用戶已被刪除
發表於 2019-8-27 10:54 AM|顯示全部樓層
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php
tryit244178 發表於 2019-8-25 10:09 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

改成這樣試試
用print()把結果顯示出來

tryit244178 前輩 您好:

我將您的程式碼改成
  1. def FunX(x):
  2.     def FunY(y):
  3.         return x * y
  4.     return FunY
  5. i = FunX(8)
  6. print(i(5))
  7. print(FunX(8)(5))
複製代碼
結果成功印出
我是用spyder下去寫的
所以加上print就成功了

感謝前輩的指導 感恩...
瀏覽完整內容,請先 註冊登入會員
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

chialewang 該用戶已被刪除
發表於 2019-8-27 10:58 AM|顯示全部樓層
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
ddttdtxb 發表於 2019-8-25 05:28 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

在 python 的例子中… 如果看到 >>> 開頭。

就表示它是在 python shell 裡執行的。

ddttdtxb 前輩 您好:

...
瀏覽完整內容,請先 註冊登入會員
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部