我有以下两个课程:
class DbQuery:
def __init__(self,query):
self.query = query
class DbResultSet:
def __init__(self,query):
self.result = []
这些类用于 SQL 查询和结果,属性用于模拟类似枚举的功能。查询如下所示:
q_forum_heirarchy =\
type( "RtDbQuery",
DbQuery( """SELECT level, id, parent_id, name
FROM forum_heirarchy_node
WHERE forum_id = :f_id
AND level != 0
ORDER BY level ASC;"""),
LEVEL=0, ID=1, PARENT_ID=2, NAME=3 )
我有什么方法可以将属性从 DbQuery 复制到 DbResultset 中吗?我不想将查询嵌入到结果集中,因为那样我就必须编写db_resultset.query.LEVEL
而不是 db_resultset.LEVEL 才能到达枚举序数。
我看到了一个__get_attribute__
方法,但我想这是由 attribute_name 索引的。
编辑:
该代码是无效的python,它不会改变我所问的要点。我发现 psycopg2(数据库库)可以做 namedtuples()(具有枚举性能特征的 python 对象),所以我懒得更新它:D