Python 跨类的多个实例的一个会话
我有MyClass类和来自Python 跨类的多个实例的一个会话,python,session,python-requests,Python,Session,Python Requests,我有MyClass类和来自请求的会话 import requests class MyClass(object): s = requests.Session() def test(self): print self.s 然后我测试了一下 In[3]: a = mymodule.MyClass() In[4]: b = mymodule.MyClass() In[5]: print a <mymodule.MyClass object at 0x10e0
请求的会话
import requests
class MyClass(object):
s = requests.Session()
def test(self):
print self.s
然后我测试了一下
In[3]: a = mymodule.MyClass()
In[4]: b = mymodule.MyClass()
In[5]: print a
<mymodule.MyClass object at 0x10e074c50>
In[6]: print b
<mymodule.MyClass object at 0x10e074d10>
In[7]: a.test()
<requests.sessions.Session object at 0x10dbe5550>
In[8]: b.test()
<requests.sessions.Session object at 0x10dbe5550>
s
在您的例子中是一个类属性-它将被初始化一次并在所有类实例中共享。将会话改为实例变量:
您的s
是一个类属性,因此它在类上存储一次。Google将在Python.ugh中查找大量关于类和实例属性之间差异的问题。。谢谢python新手:plooks喜欢Java语法,但事实并非如此!
In[13]: s1 = requests.Session()
In[14]: s2 = requests.Session()
In[15]: print s1
<requests.sessions.Session object at 0x10e089210>
In[16]: print s2
<requests.sessions.Session object at 0x10e089650>
import requests
class MyClass(object):
def __init__(self):
self.s = requests.Session()
def test(self):
print self.s