如果变量不为空,则将参数解包到函数

unpacking arguments to a function if variable not empty

如果变量不为空,我正在尝试将参数列表传递给函数。

这是变量:

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

错误代码提示我不能在这种情况下使用 **args?

这是 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,
          ):

试试这个 ;)

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