2013-07-03 18 views
8

Zeit anzuzeigen, wenn ich display() Funktion im Notebook IPython verwende ich Zeilenumbrüche zwischen den Objekten eingefügt erhalten:IPython Notebook: wie() mehrere Objekte ohne Newline

>>> display('first line', 'second line') 
first line 
second line 

Aber ich möchte das print() Verhalten, in der alles gehalten wird auf der gleichen Linie, zum Beispiel:

>>> print("all on", "one line") 
all onone line 

gibt es eine Methode display Verhalten zu ändern, dies zu tun?

Antwort

5

Nein, display kann Zeilenumbrüche nicht verhindern, zum Teil, weil es keine Zeilenumbrüche zu verhindern gibt. Jedes angezeigte Objekt bekommt seine eigene div zum sitzen, und diese sind vertikal angeordnet. Möglicherweise können Sie dies mit CSS einstellen, aber ich würde das nicht empfehlen.

Die einzige Möglichkeit, zwei Objekte nebeneinander anzuzeigen, besteht darin, ein eigenes Objekt zu erstellen, das mehrere angezeigte Objekte kapselt und stattdessen anzeigt.

Zum Beispiel Ihres einfacher String-Fall:

class ListOfStrings(object): 
    def __init__(self, *strings): 
     self.strings = strings 

    def _repr_html_(self): 
     return ''.join([ 
      "<span class='listofstr'>%s</span>" % s 
      for s in self.strings 
      ]) 

display(ListOfStrings("hi", "hello", "hello there")) 

example notebook