我有一个设计用于使用 postgresql db 的类:
dbclass = DBclass(1)
class DBclass(object):
select_query = 'SELECT * FROM "{table}" WHERE {table}_id=%s'
def __init__(self, id=None):
self.__id = id
self.__table = self.__class__.__name__.lower()
我已经__setattr__
超载了:
def __setattr__(self, name, value):
super(DBclass, self).__setattr__(name, value)
self.load()
以及用于连接从数据库加载内容的方法:
def load(self):
# Here I send select query and get two remaining values
有了这个__setattr__
我只能初始化__id
和__table
值。我的数据库中仍有两个字段未加载。我无法使用它们初始化它们,__setattr__
因为__table
变量尚未初始化,__id
并且 python 无法调用加载方法并发送查询。
也许我在我的决定中输入了错误的逻辑,并且不应该像那样启动来自 db 的值。