我有以下兩類屬性到其他類:蟒蛇:使用屬性爲枚舉,然後分配
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