[問題] def func內呼叫不到builtin function
小弟目前在自學Python,之前有幾年MATLAB和幾個月R的經驗
現在遇到些問題想請教各位板大
程式碼如下: backsub.py
http://pastebin.com/q2uzRfRJ
問題:
import numpy
from numpy import *
import backsub as sta
sta.backsub(X,y)
跳出錯誤訊息:
NameError: name 'zeros' is not defined
但如果把backsub.py的程式碼整個複製到IDLE中執行後
backsub(X,y)
就成功且正確跑出來了
似乎def func中呼叫不到zeros這個function
因此懷疑是不是和local vs global有關
但辜狗一下都只是看到針對variable沒看到對function的說明
異想天開在程式碼加上
global zeros
一樣無法成功跑出sta.backsub(X,y)
請問到底是什麼原因呢?
謝謝!
--
○ 啊~ ○○ 咿~ ○ 喔~ 嗯~
ㄥ︹○ ︽〕 ○\︿ ○
》 ﹨︿ ○︿/︿ ○≦\_
(十面埋伏) (針鋒相對) (腹背受敵) (騰雲駕霧)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 184.6.253.131
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1440949878.A.8E2.html
推
08/31 00:09, , 1F
08/31 00:09, 1F
謝謝C大
其實我第一次就有把'from numpy import *'寫在backsub.py裡
但是import backsub as sta時跳出下列錯誤訊息,所以我就刪了
SyntaxError: import * only allowed at module level
剛剛發現變成arange這個function呼叫不到...
所以靈光一現,不用import *,而是把會用到的三個numpy::function寫進去
'from numpy import zeros, arrange, dot'
就成功了!
但對原理還是不太了解....
請問有板大能幫忙解釋一下並提供其他解決法嗎?
畢竟要是下次是三十個而不是三個function那就麻煩了...
※ 編輯: MADNUG (184.6.253.131), 08/31/2015 01:09:15
推
08/31 10:48, , 2F
08/31 10:48, 2F
→
08/31 11:39, , 3F
08/31 11:39, 3F
→
08/31 11:39, , 4F
08/31 11:39, 4F
→
08/31 11:39, , 5F
08/31 11:39, 5F
→
08/31 13:19, , 6F
08/31 13:19, 6F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章