Python 重新加载模块时强制重新加载类

Python 重新加载模块时强制重新加载类,python,python-2.7,sage,Python,Python 2.7,Sage,在我的客户端代码中,我有: import sys import os YAP_PATH = "/package/src/python" if YAP_PATH not in sys.path: sys.path.append(YAP_PATH) if 'yap' in sys.modules: reload(yap) import yap print "working dir", os.getcwd() (这是一个sage的开发环境,所以不要对这个黑客解决方案大喊大叫

在我的客户端代码中,我有:

import sys
import os
YAP_PATH = "/package/src/python"
if YAP_PATH not in sys.path:
    sys.path.append(YAP_PATH)

if 'yap' in sys.modules:  
    reload(yap)

import yap

print "working dir", os.getcwd()
(这是一个sage的开发环境,所以不要对这个黑客解决方案大喊大叫)

在我的模块的
\uuuu init\uuuu.py
中:

import Repository

__all__ = ['Repository']

print "yap loaded"
每次我计算第一个代码块(在sage单元中)时,它都会打印“yap-loaded”,因此每次都会重新加载模块

我现在想在
\uuu init\uuuuuupy.py
中实现的是,每次重新加载模块时,类
存储库也将重新加载


如何实现这一点,而不将代码放在sage单元格中,而是放在
\uuu init\uuuu.py
文件中

from Repository import Repository

__all__ = ['Repository']

def main(path):
    import sys
    _module_ = sys.modules[__name__]
    if hasattr(_module_, 'WORKING_PATH'):
        for m in __all__:
            if __name__ + "." + m in sys.modules:
                m = sys.modules[__name__ + "." + m]
                reload(m)
    else:
        _module_.WORKING_PATH = path

if __name__ == 'yap':
    print "yap loaded"
欢迎光临