<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13.333333969116211px">Thanks for answering my twitter question about HTML representations of dataframes.  </span><a href="https://twitter.com/hughesadam87" target="_blank" style="font-family:arial,sans-serif;font-size:13.333333969116211px">https://twitter.com/hughesadam87</a><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">
<br></div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">I have a composition class that stores a DataFrame, and uses __getattr__ to pass any attribute call down to the dataframe.  Therefore, my object has a __repr__(), _repr_html_() etc...</div>
<div style="font-family:arial,sans-serif;font-size:13.333333969116211px"><br></div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px">The difference is, if I do "print obj.df", I get the nice html output by default.  However, if I do "print obj", I don't get this; I get the standard plain string output.  This is weird because I am not  overwriting anything.  I can sucessfully get my object to print the dataframe html representation by doing:</div>
<div style="font-family:arial,sans-serif;font-size:13.333333969116211px"><br></div><div style="font-family:arial,sans-serif;font-size:13.333333969116211px"><div>    from IPython.core.display import HTML</div><div>    display(HTML(obj.to_html()))</div>
<div><br></div><div>What I don't understand is how does the notebook know that a pandas dataframe should display as html by default?  How are they communicating?  When you print a dataframe, does the notebook look specifically for the _repr_html  Since my object has all of the methods of a dataframe (although not publicized), I imagine the notebook might be looking for certain attributes or methods or something, to set this default HTML printing?</div>
<div><br></div><div>Hope that makes some sense, sorry.</div></div></div>