【发布时间】:2016-08-11 05:57:00
【问题描述】:
我有来自requests 的带有 Session 的 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>
来自 a 和 b 的会话对象如何相同?我希望创建两个不同的会话,一个用于 a,另一个用于 b。
我不认为Session 是单身人士。如图所示,调用requests.Sessions() 两次并创建了两个不同的 Session 实例。
那么为什么a 和b 中的会话是一样的呢?
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>
【问题讨论】:
-
你的
s是一个类属性,所以它被存储一次,在类上。谷歌可以找到关于 Python 中类和实例属性之间差异的大量问题。 -
呃 .. 谢谢 .. python 新手:p
-
看起来像 Java 语法,其实不是!
标签: python session python-requests