2011-12-07 3 views
0

데이터베이스 외부에 두 개의 객체를 만들었습니다. 하나는 SERVICES이고 하나는 MODULES입니다.관련 객체가있는 객체 목록 가져 오기

특정 서비스와 관련된 모든 MODULES을 받고 싶습니다. 예를 들어, 아래 예제에서 "기본적으로 FACEBOOK 키로 서비스와 관련된 모듈 객체 목록 가져 오기"라는 명령을 실행하고 마지막 두 모듈 객체를 반환하도록합니다.

class Module(object): 

    def __init__(self, key, service, name): 
     self.key = key 
     self.service = service 
     self.name = name 

ALL_MODULES = [ 
    Module(
     'TWT', 
     SERVICES['TWITTER'], 
     'Twitter Tweets', 
    ), 
    Module(
     'FBC', 
     SERVICES['FACEBOOK'], 
     'Facebook Comments', 
    ), 
    Module(
     'FBP', 
     SERVICES['FACEBOOK'], 
     'Facebook Posts', 
    ), 
] 

#dict of the above list 
MODULES = dict([(s.key, s) for s in ALL_MODULES]) 
+0

SERVICES 클래스는 어떻습니까? 전달한 서비스 이름을 검색하는 방법은 무엇입니까? –

+0

@FelixYan 안녕하세요 펠릭스. 무슨 소리 야? module.service에 나열된 "FACEBOOK"서비스 키가있는 경우 모듈 개체를 검색하는 방법을 궁금합니다. – Brenden

+0

죄송합니다. 나는 SERVICES가 DICT 나 다른 것이라면 키를 검색 할 수 있다고 생각하지 않는다. 나중에 모듈을 검색 할 수 있도록 서비스를 파싱하는'Module'과 같은 클래스를 만들 것을 제안한다. –

답변

3

나는 SERVICESname -attribute을 가진 -Class Service를 반환한다고 가정합니다. 이것이 사실이라면 다음과 같이 서비스와 관련된 모든 모듈 (예 : FACEBOOK)을 가져올 수 있습니다.

serviceModules = [m for m in ALL_MODULES if m.service.name == 'FACEBOOK'] 
+1

감사! 그건 제외하고 = = 이름과 'FACEBOOK'사이의 ==가되어야합니다. – Brenden

+0

맞음, 오타가 수정되었습니다. – gecco