2017-10-24 7 views
1

Ich habe eine Blackbox-Funktion, die ~ 10 Ganzzahl-Eingaben akzeptiert. Die Funktion gibt einen Pandas-Datenframe zurück, und ich möchte das Ausgabefenster erfassen (mit bbwidget.children) und an anderer Stelle in einem Layout anzeigen. Bisher scheint interact/interactive die Wette dafür zu sein.Interact/interaktiv für eine Blackbox-Funktion

Ich habe eine Liste von Widgets definiert, die als Eingaben für die Funktion verwendet werden; Kann ich diese Liste an interactive/interactive weitergeben? Aus meinen bisherigen Versuchen muss ich ALLE Input-Widgets vorher angeben und sie alle einzeln in einem Aufruf an Interactive weitergeben.

Hier ist vom Konzept her, was ich (nur mit der dictcomp im Funktionsaufruf, dass jedes Widget Karten zu einem bestimmten Eingang zu veranschaulichen) tun mag:

widgetlist = [list of int input widgets] 
inputlist = [list of function inputs] 

def bbfunc(inputlist): 
    return df 

bbwidget = ipyw.interactive(bbfunc, {k:v for k,v in zip(widgetlist,inputlist)}) 

Gibt es eine spezielle Syntax oder Option für einen Anruf interaktiv/interaktiv das könnte das ermöglichen?

Antwort

0

Ich glaube, ich meine eigene Antwort gefunden:

import ipywidgets as ipyw 
from IPython.display import display 

def f(x,y): 
    return x + y 

x,y = 0,0 
xwidget = ipyw.IntSlider(min=-10,max=30,step=1,value=10) 
ywidget = ipyw.IntSlider(min=-10,max=30,step=1,value=10) 
widgetdict = {k:v for k,v in zip(('x','y'),(xwidget,ywidget))} 
testwidg = ipyw.interact(f, **widgetdict)