您好,匿名用户
随意问技术百科期待您的加入

python 变量全局化

0 投票

我在Base模块中建立了一个类:

class Base(object):
    def do_something(self):
        pass

在main文件中,我这么做:

import Base
class Sub(Base.Base):
    pass

在Base类中,do_something()是需要访问main的命名空间的。也就是说Base类不会被实例化,但是会从别的地方(main中)继承Base.Base,然而继承而来的do_something()命名空间不是main的。
我想保持main文件的整洁,该如何修改Base文件来使继承下来的方法do_somgthing能访问main的命名空间?

用户头像 提问 2014年 2月15日 @ Kayle 上等兵 (277 威望)
分享到:

1个回答

0 投票

没有简单的办法让定义在模块中的代码直接使用调用这个模块的代码模块的全局变量。

你可以或者:

将要用到的全局变量作为 do_something 的参数传入。

或者:

定义一个可 import 的模块,比如 _g.py。整个程序所有需要以全局的方式存取的数据都放在 _g 中。

用户头像 回复 2014年 2月15日 @ hacker 上等兵 (362 威望)
提一个问题:

相关问题

0 投票
1 回复 37 阅读
0 投票
1 回复 28 阅读
0 投票
1 回复 40 阅读
0 投票
1 回复 10 阅读
0 投票
1 回复 22 阅读
用户头像 提问 2013年 11月27日 @ Artemis 上等兵 (162 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...