2012-07-01 5 views
-1

가정하자 나는 기본 양식은 "main_form"라는하고 난 "main_form"를 기반으로 "g_main_form"등 등, 이는 "w_main_form"와 같은 몇 가지 더 형태의 이름이 그들이에 따라 다릅니다 'category'가장 쉬운 방법

파생 형식의 이름을 생성하고이를 호출하는 쉬운 방법이 있습니다.

은 카테고리 " w_main_form"및 카테고리가 " coal"폼 이름 "을 g_main_form"이어야하고 폼 이름이어야 " iron"가정하자. 일반적으로

>>> derived_names = ["%s%s" % (prefix, main_name) for prefix in ["w_", "g_"]] 
>>> derived_names 
['w_main_form', 'g_main_form'] 

, 같은 원리를 직접 적용 할 수 있도록, 당신은 당신이 측면에서하고 싶은 변환의 생각하고 싶지 : 지능형리스트 (내 선호하는 방법)와

+0

범주를 가정는 "철"다음 폼의 이름이 "w_main_form"와 범주는 "석탄해야입니다 제공 "양식 이름은"g_main_form "이어야합니까? 지금 도와 주실 수 있습니까? –

+0

카테고리의 양식 이름을 결정하는 것은 무엇입니까? 계산할 수 없으면 사전을 사용하여 찾아보십시오. "호출하는 법"이 무엇인지 모르시겠습니까?'w_main_form()'처럼 호출 할 수있는 것이 있습니까? – martineau

답변

2
>>> main_name = "main_form" 
>>> derived_names = [] 
>>> for prefix in ["w_", "g_"]: 
    derived_names.append("%s%s" % (prefix, main_name)) 


>>> derived_names 
['w_main_form', 'g_main_form'] 

또는, 기능을 제공하려면 f(main_name, data)data을 제공해야합니다. 이 경우 조작은 "prepend"("%s%s" % (prefix, main_name)으로 구현 됨)이며 모든 접두어가 데이터입니다.

편집 : 예.

>>> category_to_prefix = {'iron': 'w_', 'coal': 'g_'} 
>>> def category_to_form_name(category): 
    return '%s%s' % (category_to_prefix.get(category,""), 'main_form') 

>>> category_to_form_name('iron') 
'w_main_form' 
>>> category_to_form_name('coal') 
'g_main_form' 
>>> category_to_form_name(None) 
'main_form' 

원하는 경우 대답을 입력하고 (위쪽 화살표 및 녹색 체크 표시를 클릭하십시오) 받아들입니다.

+0

카테고리가 "iron"이고 양식 이름이 "w_main_form"이고 카테고리가 "coal"인 경우 양식 이름이 "g_main_form"이어야한다고 생각하십니까? –

1

이 의견 진술 일을 할 것입니다 ..

def generate_Name(base, category): 
    if category == 'iron': 
     derived_name = 'w_'+base 
    elif category == 'coal': 
     derived_name = 'g_'+base 

    return derived_name 


iron_form = generate_Name('main_form', 'iron') 
coal_form = generate_Name('main_form', 'coal') 

print iron_form 
print coal_form 

w_main_form 
g_main_form 
+2

이것은 dict로 더 잘 수행됩니다 – Claudiu

+0

@Claudiu가 동의했습니다! .. 나는이 기능을 사용할 수있는 간단한 리터럴 대안으로 남겨 둘 것입니다. (예 : – Levon

+0

을 사용하는 것만 큼 좋지 않습니다.) 어떻게 생성 된 이름을 호출 할 수 있습니까? "w_main_form ("argument1 ","argument2 ")"어떻게해야하는지. "w_main_form()"을 수정하고 싶지 않습니다. 어쨌든 기존 폼을 건드리지 않고서도 그것을 구현할 수 있습니까? –

관련 문제