2016-01-11 3 views
2

Я пытаюсь передать список аргументов функции, если переменная не пуста.распаковка аргументов функции, если переменная не пуста

Вот переменная:

shape_properties: { 
        'header_shape': { 
            'width': 8582400, 
            'height': 468000 
            }, 
        'chart_shape': { 
            'width': 8582400, 
            'height': 3585600 
            }} 

Но эта переменная не может быть None иногда:

shape_properties=None 

Я хотел бы, чтобы тянуть в shape_properties от заданы параметры, если его не пустые. Вот то, что я пробовал:

sub_title_shp = add_textbox(slide, 
          text=question_label, 
          **shape_properties['header_shape'] if shape_properties else '') 

Я получаю эту ошибку:

TypeError: add_textbox() argument after ** must be a mapping, not unicode 

Код ошибки подсказывает мне, что я не могу использовать ** арг в состоянии, как это?

Вот что add_textbox() выглядит следующим образом:

def add_textbox(
      sld, text, 
      left=Emu(0), top=Emu(0), width=Emu(300), height=Emu(100), 
      font_name="Calibri", 
      font_size=12, 
      font_bold=True, 
      font_italic=False, 
      font_color=(89,89,89), 
      font_color_brightness=0, 
      font_color_theme=None, 
      word_wrap=True, 
      auto_size=None, 
      fit_text=True, 
      font_file=None, 
      margin_left=0.25, 
      margin_right=0.25, 
      margin_top=0.13, 
      margin_bottom=0.13, 
      vertical_alignment='top', 
      horizontal_alignment='left', 
      textbox_fill_solid=False, 
      textbox_color=(100,0,0), 
      textbox_color_brightness=0, 
     ): 

ответ

2

Попробуйте это;)

sub_title_shp = add_textbox(slide, 
         text=question_label, 
         **(shape_properties['header_shape'] if shape_properties else {})) 
+0

получил другую ошибку: Ошибка типа: объект 'NoneType' не итерацию –

+0

@ Boosted_d16, который должен быть проблема, когда add_textbox не получает требуемый параметр, покажите полный код в другом вопросе, если вы хотите ... –

+0

add_textbox требуется только два параметра, остальные необязательны, но кажется, что значения дополнительных параметров перезаписываются пустым dict? –

Смежные вопросы