python如何跨文件访问__main__中的内容

正常情况下运行主文件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'

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值