Python 跨类的多个实例的一个会话

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

我有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 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