Python - 导入模块获取全局变量

时间:2017-09-02 01:43:29

标签: python module global python-import

我有两个Python脚本,一个是testclass.py:

import numpy
zz = numpy

class Something(object):
    def __init__(self):
        self.xp = zz

和一个testscript.py:

from testclass import Something
x = Something()
print(x.xp)

我希望testscript.py抛出错误,因为我认为testscript只导入类Something(使用__init__方法),而不是全局变量zz。所以,鉴于这个bevahiour,我的问题是,当从模块导入时,Python"运行"模块文件中的所有内容?

1 个答案:

答案 0 :(得分:2)

是。执行时:

Client

它具有与以下相同的效果:

Problem: I need to access a command line API on a Remote machine.

更一般地说,Python解释器无法事先知道模块公开的对象(除非您在__all__中明确命名它们)。对于极端情况,请考虑以下事项:

public void login(final String email, final String password) { String url = BASE_URL + "login"; RequestQueue queue = Volley.newRequestQueue(mContext); StringRequest stringRequest = new StringRequest(Request.Method.GET, url, this, this) { @Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String, String> headers = new HashMap<>(); headers.put("email", email); headers.put("password", password); return headers; } }; queue.add(stringRequest); }

from testclass import Something

运行import testclass Something = testclass.Something 有50%失败的可能性,因为a.py模块对象可能有也可能没有import random if random.random() > 0.5: class Foo(object): pass else: class Bar(object): pass 属性。