我有以下两类属性到其他类:蟒蛇:使用属性为枚举,然后分配
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索引。
编辑:
代码是无效的蟒蛇,它不会改变的,我问什么要点。我发现psycopg2(数据库库)可以做namedtuples()(python对象与enums的性能字符),所以我不能打扰地更新它:D
你的意思是某种属性代理?这样的事情可能吗? http://code.activestate.com/recipes/510402-attribute-proxy-forwarding-attribute-access/ – cha0site 2012-07-05 14:12:18