我要连接到以下多个数据库:
class DB:
def __init__(self, database):
conn_str = ...
try:
self.engine = sqlalchemy.create_engine(conn_str)
self.conn = self.engine.connect()
print('yay')
except Exception as e:
print('\n Something is wrong: \n', e)
def __call__(self):
return self.engine
db1 = DB(some_url)
从此处,呼叫db1.engine
或db1()
将返回Engine(mssql+pymssql://...)
我想要的是db1
(不带括号)给我相同的结果:sqlalchemy.engine.base.Engine
类型的对象。
这应该可行!考虑熊猫pd.DataFrame()
是一类。您可以调用一个类实例,并使其返回不带括号的DataFrame,如下所示:
import pandas as pd
x = pd.DataFrame()
type(x)
pandas.core.frame.DataFrame
我尝试浏览熊猫的源代码,但无法弄清楚它们是如何做到的。