我不知道爲什麼下面的代碼工作。如果我主要評論斧頭任務,它就停止工作。斧頭如何進入功能範圍?這是python 2.7.2版本。使用matplotlib - 軸對象困惑變量作用域
經過多一點研究後,我發現在這個相同的代碼模塊中定義的函數可以看到主塊塊中的所有變量。我不知道python以這種方式工作!在同一個源文件中的所有函數都可以看到主塊塊中的每個變量。這並不符合我的期望!它似乎違反了什麼功能。我想這個例外是爲主要代碼塊,但我不會猜到它。
如何防止在此代碼模塊中定義的函數看到主塊塊中的所有變量?
import pylab as plt
def f():
ax.plot([1],[2]) # How is this ever defined?
return
if (__name__ == "__main__"):
fig = plt.figure()
plt.clf()
ax = plt.subplot(111,polar=True) # If I comment this out, then ax is not defined error in function call
plt.hold(True)
f()
?在'f'裏面,解釋器尋找符號'ax'。如果找不到它,它會在您的全局範圍內查找,確實定義了「ax」。 – gg349 2014-10-10 08:58:55
你應該修改你的函數來把'Axes'對象作爲參數。 – tacaswell 2014-10-10 13:56:35