我正在构建一个类,该类具有许多方法来从同一网站请求不同的数据。要注意的是,session_id需要在所有实例方法之间保持持久性。
我在下面编写了一些模拟代码,想知道这是否是正确的解决方法,还是我弄错了?
import random
class classTest():
def __init__(self):
self.session_id = None
def set_session_id(self):
if self.session_id == None:
self.session_id = random.randrange(0,1000)
return self.session_id
def use_session_id(self):
return self.set_session_id()
def use_session_id_again(self):
return self.set_session_id()
在上面的示例中,我用一个随机数模拟了session_id,当我测试两种不同的方法时,我得到了持久的结果,这意味着它工作得很好...但这是实现此目标的正确方法吗?谁能建议一种更好/适当的方式来做到这一点?
答案 0 :(得分:2)
首选的方法是在session_id
方法中仅将__init__
设置一次,因此在初始化之后,它在对象的整个生命周期内保持不变。而且只是不要在初始化后更改它。
类似这样的东西:
import random
class classTest():
def __init__(self):
self.session_id = random.randrange(0,1000)
def use_session_id(self):
print(self.session_id)
def use_session_id_again(self):
print(self.session_id)
test = classTest() # session_id is set here
test.use_session_id() # will print session id
test.use_session_id_again() # will print the same session id