【发布时间】:2015-08-23 08:45:06
【问题描述】:
class db:
global_ids = {}
global_mappings = {}
def __init__:
db_client = sth sth #clinet to mongo db
db_connection = sth sth #connection to mongo db
db_coll = sth sth
我需要一些类变量(global ids 和 global mappings),它们只能为 db 类初始化一次,db 类的所有其他实例都可以使用它。
类变量的值必须通过查找数据库的某个函数来计算。如何组织我的课程?
【问题讨论】:
-
为什么它们是类属性和
global?为什么不提供类方法来初始化它们,或者提供某种工厂方法来动态创建类? -
你的类上会有一些“全局”的对象(变量),然后是类中的一个函数,它接受输入并进行计算
-
@JohnRuddell..从哪里调用该函数?
-
好吧,如果您想立即将值放入 init 中。
self.set_gloabals()和 set_globals 可以查询您的数据库并实际设置值 -
self.set_gloabals() 将为每个类实例调用和处理。我只需要一次。所以我在想是否有其他方法