나는 다음과 같은 두 개의 클래스 한 다른 클래스에 속성 할당 :파이썬 : 열거 같은 속성을 사용하고
class DbQuery:
def __init__(self,query):
self.query = query
class DbResultSet:
def __init__(self,query):
self.result = []
그리고 이러한 클래스는 SQL 쿼리 및 결과에 사용되는이 속성은 열거를 시뮬레이션하는 데 사용됩니다 같은 기능. DbResultset에 DbQuery에서 속성을 복사 할 나를 위해 어떤 방법이
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)
거기에 다음과 같이 쿼리 보인다? 결과 집합에 쿼리를 포함시키지 않으려면 db_resultset.LEVEL 대신 db_resultset.query.LEVEL
을 써야 열거 형 서수를 가져올 수 있기를 바랍니다.
나는 __get_attribute__
메쏘드를 보았지만, 이것은 attribute_name에 의해 색인이 생성된다고 가정합니다.
편집 :
이 코드가 잘못 파이썬, 그것은 내가 묻고 있었는지의 요지를 변경하지 않습니다됩니다. psycopg2 (데이터베이스 라이브러리)는 열거 형의 성능 문자가있는 namedtuples() (python 객체)를 실행할 수 있으므로 업데이트하기가 힘듭니다. D
당신은 어떤 종류의 속성 프록시를 의미합니까? 아마도이게 뭔가? http://code.activestate.com/recipes/510402-attribute-proxy-forwarding-attribute-access/ – cha0site