注册 登录
编程论坛 Python论坛

Python模块重载的一个问题(删除代码仍有效)

tuyajie21cn 发布于 2013-01-17 10:16, 1355 次点击
情况描述:(python2.7)
A.py中import Just.py,在A.py运行期间
1、修改Just.py中的方法cli_xx(),然后A.py中调用reload()重新载入,修改的方法立即生效
2、Just.py中新增一个方法,然后A.py中调用reload()重新载入,新增的方法立即生效
问题出现了!!
3、Just.py中删除方法cli_xx(),然后A.py中调用reload()重新载入,被删除的方法仍然可用

为什么?怎么办?大家一起讨论下呢?

A.py 代码:
程序代码:
#/usr/bin/python2.7
#
A.py

import Just

Just.cli_xx()

a = input('Put in:')
print 'a:',a

reload(Just)
Just.cli_xx()

Just.py 代码:
程序代码:
#/usr/bin/python2.7
#
Just.py

def cli_xx():
    print "I'm xx"

先运行A.py  待提示输入时先修改Just.py,然后随意输入,查看结果
1 回复
#2
静夜思2013-01-17 14:02
reload并不可靠,web框架开发环境都是用的reload,但有时候修改了代码需要重启server才能生效
1