我有两个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"运行"模块文件中的所有内容?
答案 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
属性。