python类加载_如何重新加载一个类在python shell?

如果我导入一个定义了属于同一个包的同名类的模块,它将被导入为一个类,而不是一个模块,因为父包的__init__.py。详情请参见

different import results at different directories。在Python shell或ipython shell中,如果我这样做

从MyPak导入MyMod

MyModule总是作为类导入,因此我无法重新加载它(reload()仅适用于模块)。跑

从MyPak导入MyMod

再次似乎没有更新类定义。任何人都可以建议一种方法来更新python shell中的类?

ps。而不重新启动python解释器。

pps。如果你有代码在手,想要测试它:我其实是谈论BioPython,我正在处理Bio.PDB.PDBParser。我有一个ipython shell(v0.10)和编辑PDBParser.py。没有办法重新加载它在ipython。

所以这里是我做了:

# 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 :(

我看不到打印的文本。这些更改没有以某种方式应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值