正常情况下运行主文件a.py去import b.py的时候是无法调用到
if __name__ == '__main__':
中的内容的,那么想要在import的时候就调用到里面的内容,就需要使用到sys.modules进行python系统环境的修改。
这里我们定义一个修改python内置sys.modules的py文件,取名update_sys.py,代码如下
import sys
# assume the module name is updated_file
if sys.modules.has_key('updated_file'):
sys.modules['updated_file'].__name__ = '__main__'
接着定义updated_file.py,里面import写好的系统变量修改文件,并定义自己的逻辑内容:
import update_sys
class A:
def do_sth(self):
print('do something')
if __name__ == '__main__':
a = A()
A.do_sth(a)
接下来,定义任意一个文件,调用updated_file.py就可以访问到它__main__下面的内容,这里给文件取名为call_file.py
import updated_file
接着只需要运行call_file.py,得到结果
>>> 'do something'