ipywidgets
を使用してさまざまな入力用のスライダを作成する関数を作成していますが、これらのスライダのデフォルト値を設定したいと思います。ipywidgetsのkwargsのデフォルト値
同時に、**kwargs
で未定義の値のセットを受け付けるようにしたいと思います。ここで、キーワードは、スライダが動作する辞書のアイテムを示します。簡単なテストケースとして:
あなたが見ることができるように、相互作用スライダーコードは私の機能で検索し、返却する値を指定します。
from ipywidgets import *
@interact(year = (2011,2021,1),
cat = (0,100,1),
man = (0,100,1)) # only make sliders for year, cat, man
def test(year = 2011, **kwargs): #default year, now I only need default everything else
data_set = {'cat':("Cat in the hat", 1000),
'dog':("Dog and bone", 1750),
'man':("Man about the house",114)} #info on cat, dog and man
for dictKey, growth in kwargs.iteritems():
itemName, itemValue = data_set[dictKey] #use kw argument to look in data set
newValue = itemValue * (1 + growth * (year - 2011)/100)
print("Item was: {}\nInitial value: {} \nGrowth: {}%\nNew Value: {}\n".format(itemName, itemValue, growth, newValue))
JupyterノートPCでの出力は次のようになります。
しかし、**kwargs
のデフォルト値をゼロに設定したいと思います。私が見つけたすべての答えは、data_set
の知識や渡される引数に依存しています。私は引数の名前が私の辞書のキーを参照し、値が1-100を持つことを知っているだけですが、私はyear
のようにデフォルトを設定する方法を知らないのですか?
NB。申し訳ありませんが、これは非常に基本的な、または以前に尋ねられている場合、私はまだPythonに新しいので、まだ何を検索するか分からない。また、コードに明白な改善がある場合は、コメントに私を教えてください!
クラスZeroDict
辞書を拡張しinexistentキーが要求されるたびに0を返す