背景:我正在使用设备供应商提供的 API 模块,它将设备登录数据(设备主机名、会话 ID 等)存储为全局变量;我试图弄清楚是否可以有多个模块实例来表示对多个设备的登录。
到目前为止,我已经尝试了几种带有测试代码的策略,但都没有奏效:
测试模块代码:statictest.py
count = 0
class Test():
@classmethod
def testcount(cls):
global count
count += 1
return count
第一次尝试:多次导入模块并实例化:
>>> import statictest as s1
>>> import statictest as s2
>>> s1.Test.testcount()
1
>>> s1.Test.testcount()
2
>>> s2.Test.testcount()
3
第二次尝试:在类中导入模块,实例化类:
#!/usr/bin/env python2.7
class TestMod():
s = __import__('statictest')
def test(self):
ts = self.s.Test()
return ts.testcount()
t = TestMod()
u = TestMod()
print t.test()
print u.test()
那个也不起作用:
[~/]$ ./moduletest.py
1
2
这似乎应该是显而易见的,但是有没有办法封装一个模块以便多个实例可用?