【发布时间】:2023-03-09 11:56:01
【问题描述】:
我有一个专为使用 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 的值。
【问题讨论】:
-
下一次,包括您在尝试分配值时遇到的错误。我怀疑 load() 会根据条件触发几个不同的错误,并且在包含错误时更容易对响应充满信心。它还有助于表明您在寻求帮助之前已经尝试了几件事。