Python Bokeh 导入逻辑
Python Bokeh imports logic
在 Python Bokeh 中可以导入具有 2 个不同路径的某些 类,例如:
from bokeh.plotting import ColumnDataSource
有效,以及:
from bokeh.models import ColumnDataSource
背后的逻辑是什么?我只是发现在使用文档中的示例时,并不 neat/nice 总是对导入路径的方式感到惊讶(因为它们总是不同的)。
在这种情况下,为了避免冲突你会这样做。如果幸运的话,无论如何都会引用相同的 类,在最坏的情况下,您可能会遇到一些令人讨厌的 problem.s
from bokeh.plotting import ColumnDataSource as pcd
from bokeh.models import ColumnDataSource as mcd
在这种情况下,它们是相同的:
print pcd.__mro__
print mcd.__mro__
'bokeh.models.sources.ColumnDataSource'>, 'bokeh.models.sources.DataSource'>, 'bokeh.model.Model'>, 'bokeh.core.properties.HasProps'>, 'bokeh.util.callback_manager.CallbackManager'>,
您会发现 bokeh.plotting
从 bokeh.models
导入 ColumnDataSource
。该行为是 类 如何导入不同名称空间的结果。您最好的做法是从定义 ColumnDataSource 的包中导入,在本例中为 bokeh.models
.
在 Python Bokeh 中可以导入具有 2 个不同路径的某些 类,例如:
from bokeh.plotting import ColumnDataSource
有效,以及:
from bokeh.models import ColumnDataSource
背后的逻辑是什么?我只是发现在使用文档中的示例时,并不 neat/nice 总是对导入路径的方式感到惊讶(因为它们总是不同的)。
在这种情况下,为了避免冲突你会这样做。如果幸运的话,无论如何都会引用相同的 类,在最坏的情况下,您可能会遇到一些令人讨厌的 problem.s
from bokeh.plotting import ColumnDataSource as pcd
from bokeh.models import ColumnDataSource as mcd
在这种情况下,它们是相同的:
print pcd.__mro__
print mcd.__mro__
'bokeh.models.sources.ColumnDataSource'>, 'bokeh.models.sources.DataSource'>, 'bokeh.model.Model'>, 'bokeh.core.properties.HasProps'>, 'bokeh.util.callback_manager.CallbackManager'>,
您会发现 bokeh.plotting
从 bokeh.models
导入 ColumnDataSource
。该行为是 类 如何导入不同名称空间的结果。您最好的做法是从定义 ColumnDataSource 的包中导入,在本例中为 bokeh.models
.