亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Canopy IPython 未更新使用 %run 運行的代碼中定義的變量?

Canopy IPython 未更新使用 %run 運行的代碼中定義的變量?

一只名叫tom的貓 2023-10-26 15:48:47
我一直試圖弄清楚 IPython 如何與使用 %run 運行的代碼中定義的變量進行交互。我對 %run 的理解是,它運行給定的 python 文件,然后將其所有數據導入到當前 IPython 筆記本的命名空間中。但是,我遇到了以下問題,我不確定如何根據該描述進行解釋。假設我們有以下名為“foo.py”的簡單程序。foo = 5def printVar():    print foo    def changeVar():    global foo    foo = foo + 1如果我們運行“foo.py”并向 IPython 詢問 的值,foo我們將得到以下結果。In [1]: %run "foo.py"In [2]: fooOut[2]: 5如果我們運行changeVar()然后再次詢問 IPython 的值,foo我希望 IPython 返回6,但實際上,我們得到以下結果。In[3]: changeVar()In[4]: fooOut[4]: 5然而,當我們跑步時,printVar()我們得到了。In[5]: printVar()6那么這是怎么回事呢?從表面上看,我們似乎陷入了矛盾。我一直想知道這是否是一個類似于變量作用域的問題。局部變量可以與全局變量具有相同的名稱,但具有不同的值,那么這里是否發生了類似的情況?如果這是真的,那么 IPython 似乎不會更新它運行foo時的版本。changeVal()我正在 Enthought Canopy 中運行 Python 2.7.13不管怎樣,希望我在這里錯過了一些簡單的東西。謝謝!
查看完整描述

1 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

是的,Ipython 有自己的命名空間。嘗試使用該%run -i選項。

查看完整回答
反對 回復 2023-10-26
  • 1 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號