Я обновляю какой -то код, чтобы использовать Dash и Plotly. Основной код для графика определяется в классе. Я заменил несколько виджетов Bokeh на приборные элементы управления и в итоге получил обратный вызов, который выглядит следующим образом: < /p>
class MakeStuff:
def __init__(self, ..., **optional):
...
self.app = dash.Dash(...)
...
@self.app.callback(
dash.dependencies.Output('indicator-graphic', 'figure'),
[dash.dependencies.Input('start-time-slider', 'value'),
dash.dependencies.Input('graph-width-slider', 'value')]
)
def update_graphs(self,range_start,graph_width):
print(...)
< /code>
Я следую за некоторыми примерами на веб -сайте Dash. Я смог запустить примеры, включая обратные вызовы. В моем коде, без декоратора, код работает без ошибок, производя графику и элементы управления, как я ожидал. (Конечно, код неполный, но ошибки нет.) Когда я включаю декоратор, я получаю эту ошибку: < /p>
nameerror : name 'self' не определено < /p>
< /blockquote>
Я устал так, во -первых, просто имитируя примеры кода: < /p>
class MakeStuff:
def __init__(self, ..., **optional):
...
app = dash.Dash(...)
...
@app.callback(
dash.dependencies.Output('indicator-graphic', 'figure'),
[dash.dependencies.Input('start-time-slider', 'value'),
dash.dependencies.Input('graph-width-slider', 'value')]
)
def update_graphs(self,range_start,graph_width):
print(...)
< /code>
Конечно, переменная «приложение» известна только в рамках функции init < /strong>, поэтому неудивительно, что это не Работа, давая аналогичную ошибку: < /p>
nameerror: name 'app' не определено < /p>
< /blockquote>
Есть ли простой способ настроить этот декоратор для работы, сохраняя при этом мой код в определении класса? Я предполагаю, что с декоратором продолжается какая-то предварительная обработка, но я недостаточно хорошо его понимаю, чтобы придумать решение.
Подробнее здесь: https://stackoverflow.com/questions/547 ... ance-varia