У меня есть MyClass класса с сессией из requests
Один сеанс нескольких экземпляров класса
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>
как объект сеанса от а и Ь такое же один? Я ожидаю, что у вас будет два разных сеанса для одного и другого для b.
не думаю, Session
- одиночный. Как показано на рисунке, вызовите requests.Sessions()
дважды и создайте два разных экземпляра сеанса. Итак, почему сессия в 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' является атрибутом класса, поэтому она хранится один раз, на классе. Google, чтобы найти gazillions вопросов о различии между атрибутами класса и экземпляра в Python. – BrenBarn
ugh .. спасибо .. новичок в python: p – codereviewanskquestions
выглядит как синтаксис Java, но это не так! –