2015-03-16 3 views
0

Я пишу еще один скрипт для программы Called Abaqus, которая отображает данные XY на диаграмме .... и часть моего скрипта меняет стили линий на основе, если они называются Видовое название ....Попробуйте, за исключением: перейдите на несколько строк

Так у меня есть куча разных имен кривых и, если диаграмма содержит, что конкретное имя, я хочу, чтобы выполнить код, чтобы изменить стиль ... к примеру ...

session.curves[PathNameNew+'_S201-16'].symbolStyle.setValues(show=True) 
    session.curves[PathNameNew+'_S201-16'].symbolStyle.setValues(marker=FILLED_DIAMOND) 
    session.curves[PathNameNew+'_S201-16'].symbolStyle.setValues(size=2) 
    session.curves[PathNameNew+'_S201-16'].symbolStyle.setValues(color='#009afb') 
    session.curves[PathNameNew+'_S247-16'].symbolStyle.setValues(show=True) 
    session.curves[PathNameNew+'_S247-16'].symbolStyle.setValues(marker=FILLED_DIAMOND) 
    session.curves[PathNameNew+'_S247-16'].symbolStyle.setValues(size=2) 
    session.curves[PathNameNew+'_S247-16'].symbolStyle.setValues(color='#009afb') 
    session.curves[PathNameNew+'_RELEASE'].symbolStyle.setValues(show=True) 
    session.curves[PathNameNew+'_RELEASE'].symbolStyle.setValues(marker=FILLED_DIAMOND) 
    session.curves[PathNameNew+'_RELEASE'].symbolStyle.setValues(size=2) 
    session.curves[PathNameNew+'_RELEASE'].symbolStyle.setValues(color='#009afb') 
    session.curves[PathNameNew+'_S205-18'].lineStyle.setValues(thickness=1) 

У меня есть около 50 различных имен кривых с разными стилями, и не все из этих кривых будут использоваться каждый раз, поэтому я думал об использовании Try, за исключением: pass method для достижения этого ... однако это было бы я должен был бы сделать это для КАЖДОГО названия кривой ...

Есть ли лучший способ?

ответ

2

Вы всегда можете сделать функцию закрытия, чтобы сделать это для вас:

def my_big_function(): 
    ... 
    def set_symbolstyle_value(key, **kwargs): 
     try: 
      session.curves[PathNameNew + key].symbolStyle.setValues(**kwargs) 
     except MyException: 
      do_something() 

    set_symbolstyle_value('_S201-16', show=True) 
    set_symbolstyle_value('_S201-16', marker=FILLED_DIAMOND) 
    ... 

Функции дешевы. Не бойтесь их использовать.

1

Построить список кортежей, каждый из которых содержит два элемента - название кривой и Dict параметров, как так:

[('somename',{'color':'blue', 'marker':FILLED_DIAMOND})...] 

Затем LST быть список выше, выполните следующие действия:

for name, par in lst: 
    if name in session.curves: 
     session.curves[name].symbolStyle.setValues(**par) 
Смежные вопросы