Документы IPython дают пример того, как создать, чтобы ваши собственные объекты отображались в IPython с расширенным отображением:
class Shout(object):
def __init__(self, text):
self.text = text
def _repr_html_(self):
return "<h1>" + self.text + "</h1>"
Однако это только очень простой пример, и в моемcase Я хотел бы отображать не только текст, но и Markdown в виджете.
Я пробовал много разных вариантов
class Shout(object):
def __init__(self, text):
self.text = text
def _repr_html_(self):
return "<h1>" + IPython.display.Markdown(self.text) + "</h1>"
или
class Shout(object):
def __init__(self, text):
self.text = text
def _repr_html_(self):
return "<h1>" + IPython.display.Markdown(self.text)._repr_html_() + "</h1>"
или
class Shout(object):
def __init__(self, text):
self.text = text
def _repr_html_(self):
return "<h1>" + IPython.display.display(IPython.display.Markdown(self.text)) + "</h1>"
но ни один из них не работает.Они либо ничего не отображают, None
, либо с ошибкой AttributeError: 'Markdown' object has no attribute '_repr_html_'
.
Есть ли способ отобразить экранный объект уценки внутри другого объекта в IPython?Я хочу реализовать свой собственный _repr_latex_
, поэтому вставка <h1>
в Markdown не является решением.