我正在使用一些需要连接到数据库的类。只有在执行实际操作时才真正需要连接。我想延迟连接阶段,直到真正需要它。为此,我想做类似的事情:
class MyClass
def __init__(self):
self.conn = None
def connect(self):
if self.conn : return
self.conn = ConnectToDatabase()
@connect
def do_something1(self):
self.conn.do_something1()
@connect
def do_something2(self):
self.conn.do_something2()
但我不知道如何为connect
类定义装饰器。
我当然可以做这样的事情:
def do_something1(self):
self.connect()
self.conn.do_something1()
但是使用装饰器似乎是一种更具可读性的解决方案。是否可以?