データベースに接続する必要があるいくつかのクラスを使用しています。接続は、実際のアクションを実行するときにのみ必要です。本当に必要になるまで接続フェーズを遅らせたい。そのために、私はこれに似た何かをしたい:
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()
しかし、デコレータを使用すると、より読みやすいソリューションのようです。出来ますか?