如果我導入一個定義了屬于同一個包的同名類的模塊,它將被導入為一個類,而不是一個模塊,因為父包的__init__.py。詳情請參見
different import results at different directories。在Python shell或ipython shell中,如果我這樣做
python unresolved reference、從MyPak導入MyMod
MyModule總是作為類導入,因此我無法重新加載它(reload()僅適用于模塊)。跑
從MyPak導入MyMod
python調用py文件,再次似乎沒有更新類定義。任何人都可以建議一種方法來更新python shell中的類?
ps。而不重新啟動python解釋器。
pps。如果你有代碼在手,想要測試它:我其實是談論BioPython,我正在處理Bio.PDB.PDBParser。我有一個ipython shell(v0.10)和編輯PDBParser.py。沒有辦法重新加載它在ipython。
python調用ctypes、所以這里是我做了:
# start ipython v0.10
import Bio
from Bio.PDB import PDBParser
p = PDBParser()
s = p.get_structure()
# then I make changes,e.g. simply print some text, in PDBParser.py
del Bio
del PDBParser
del s
import Bio # or reload(Bio) without deleting all the objects
from Bio.PDB import PDBParser
p = PDBParser()
s = p.get_structure() # expected output after change not seen :(
我看不到打印的文本。這些更改沒有以某種方式應用。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态