【发布时间】:2015-01-07 16:22:17
【问题描述】:
我在 python 中有一个模块,它提供了用于执行数据库查询的各种功能。 它看起来像这样:
def do_some_query(conn):
## logic goes here
def do_something_else(conn):
## logic goes here
其中conn 是一个数据库连接对象。当然,这意味着conn 对象的大量传递。
我想让用户只为他们的会话设置一次连接对象,然后调用函数。
显然,将整个东西放在一个类中是一个很好的答案,但我不想让用户在每次想要使用这些功能时都初始化一个类。 IE,我不希望 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()
有没有办法对用户“隐藏”类,或者在没有类的情况下提供封装?
【问题讨论】:
标签: python oop encapsulation