python:没有类封装数据?

时间:2015-01-07 16:22:17

标签: python oop encapsulation

我在python中有一个模块,它提供了执行数据库查询的各种函数。 它看起来像这样:

def do_some_query(conn):
    ## logic goes here

def do_something_else(conn):
    ## logic goes here

其中conn是数据库连接对象。当然,这意味着很多传递conn对象。 我想让用户只为会话设置一次连接对象,然后调用函数。

显然将整个事情放在一个类中是一个很好的答案,但我不想让用户每次想要使用这些函数时都要初始化一个类。 I.E,我不希望API像这样:

 from database_module import DatabaseClass

 db = DatabaseClass()
 db.connect(...)
 db.do_some_query()

但是像这样:

 import database_module as dm

 dm.connect(...)
 dm.do_some_query()

有没有办法隐藏'来自用户的类,还是提供没有类的封装?

1 个答案:

答案 0 :(得分:1)

您可以使用connect函数将连接置于全局变量中,其他函数将使用它。

_conn = None

def connect():
    global _conn
    _conn = ...

def query():
    _conn.execute("SELECT ...")
相关问题