"suppress_callback_exceptions"在破折号Python中的作用是什么?

What's the role of "suppress_callback_exceptions" in dash Python?

这样写有什么区别:

app = dash.Dash(__name__, suppress_callback_exceptions=True,
                meta_tags=[{'name': 'viewport',
                            'content': 'width=device-width, initial-scale=1.0'}]
                )
server = app.server

还有这个:

app = dash.Dash(__name__, suppress_callback_exceptions=False,
                meta_tags=[{'name': 'viewport',
                            'content': 'width=device-width, initial-scale=1.0'}]
                )
server = app.server

来自source code

suppress_callback_exceptions: check callbacks to ensure referenced IDs exist and props are valid. Set to True if your layout is dynamic, to bypass these checks.

所以您自己链接的示例并没有真正的区别。或者更确切地说,如果 app 具有引用不存在的 id and/or 无效道具的回调,或者 app.layout 中的元素具有无效道具,您只会遇到不同的行为。

suppress_callback_exceptions 设置为 True 的原因可能是因为您有通过 id 引用元素的回调,但这些元素在应用程序的生命周期中并不总是出现在布局中。例如,元素可能会通过不同的回调动态插入 app.layout

来自 documentation

的另一个示例

...Since suppress_callback_exceptions=True is specified here, Dash has to assume that the input is present in the app layout when the app is initialized...