2010-10-28 14 views
6

क्या ऐसा करने का कोई बेहतर तरीका है? मुझे लगता है कि मैं बहुत दोहराव से कुछ गलत कर रहा हूं।क्या यह लिखने का कोई बेहतर तरीका है?

O = viz.pick(1, viz.WORLD) 

BackSetts = ["set_b1b", "set_b2a", "set_b1a", "set_b2b"] 
LeftSetts = ["set_l1a", "set_l1b", "set_l2a", "set_l1b"] 
NormSetts = ["set_nr_a", "set_nr_b"] 
Maps = ["MapA","MapB"] 

if O.name in BackSetts: 
    for i in set(BackSetts)|set(Maps): 
     WORLD[i].alpha(abs(WORLD[i].getAlpha()-1)) 

elif O.name in LeftSetts: 
    for i in set(LeftSetts)|set(Maps): 
     WORLD[i].alpha(abs(WORLD[i].getAlpha()-1)) 

elif O.name in NormSetts: 
    for i in NormSetts: 
     WORLD[i].alpha(abs(WORLD[i].getAlpha()-1)) 
+2

आप क्या करने की कोशिश कर रहे हैं? – katrielalex

+0

कोड का यह टुकड़ा मेरे 3 डी इंजन (पांडा 3 डी के समान) को यह जांचने के लिए बताता है कि कौन से "मानचित्र" दिखाई दे रहे हैं (अल्फा) मेरे बहुभुज पर बनावट के रूप में जब एक स्विच-ऑब्जेक्ट माउस (viz.pick) पर क्लिक किया जाता है; यह लागू बनावट की पारदर्शिता स्थिति को उलट देता है। – relima

उत्तर

3

तुच्छ परिवर्तन है:

O = viz.pick(1, viz.WORLD) 

BackSetts = ["set_b1b", "set_b2a", "set_b1a", "set_b2b"] 
LeftSetts = ["set_l1a", "set_l1b", "set_l2a", "set_l1b"] 
NormSetts = ["set_nr_a", "set_nr_b"] 
Maps = ["MapA","MapB"] 
anyset = [] 

if O.name in BackSetts: 
    anyset = set(BackSetts)|set(Maps) 

elif O.name in LeftSetts: 
    anyset = set(LeftSetts)|set(Maps) 

elif O.name in NormSetts: 
    anyset = NormSetts 

for i in anyset: 
    WORLD[i].alpha(abs(WORLD[i].getAlpha()-1)) 

यह ख्याल रखता है ऐसी है कि NormSetts अपने मूल कोड के रूप मैप्स के साथ union'd नहीं है,।

संबंधित मुद्दे