Боке - Фигура подкласса - PullRequest
       15

Боке - Фигура подкласса

0 голосов
/ 07 февраля 2019

Вот простой пример «быстрого запуска» боке:

from bokeh.plotting  import Figure

output_file("lines.html")
xs = [1, 2, 3, 4, 5]
ys = [6, 7, 2, 4, 5]

p = Figure()
p.line(xs, ys, legend="Temp.", line_width=2)

show(p)

Это работает.Теперь, если я разделю рисунок на подклассы, сценарий все еще выполняется без ошибок и генерирует HTML-страницу, но браузер покажет только пустую страницу:

from bokeh.plotting  import Figure

class TestFigure(Figure):
    def __init__(self):
        super().__init__()    

output_file("lines.html")

xs = [1, 2, 3, 4, 5]
ys = [6, 7, 2, 4, 5]

p = TestFigure()
p.line(xs, ys, legend="Temp.", line_width=2)

show(p)

Это намеренно?

1 Ответ

0 голосов
/ 07 февраля 2019

Классы Bokeh высоко инструментированы, чтобы упростить автоматическую сериализацию и синхронизацию между Python и JavaScript.В частности, каждый класс Bokeh на самом деле имеет две части, одна на Python, а другая на JavaScript.Если вы создаете подкласс на стороне Python, вы должны предоставить соответствующую реализацию JavaScript.Таким образом, одного лишь подкласса на стороне Python недостаточно, вам нужно создать собственное расширение .Если вы на самом деле не пользуетесь преимуществами, которые может предложить пользовательское расширение, то, вероятно, оно того не стоит.

TLDR: классы Bokeh, как правило, не должны разделяться на подклассы, за исключением создания пользовательских (JavaScript) расширений.

...