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 노트북의 출력은 다음과 같습니다 : 당신이 볼 수 있듯이
가의 상호 작용 슬라이더 코드가 지정 조회 내 함수에서 반환하는 값 간단한 테스트 케이스로 .
그러나 모든 **kwargs
의 기본값도 0으로 설정하고 싶습니다. 내가 찾은 모든 대답은 data_set
에 대한 지식이나 전달할 인수에 의존합니다. 인수 이름이 사전에있는 키를 참조하며 1-100의 값을 갖음을 알고 있습니다. 그러나 year
처럼 기본값을 설정하는 방법을 모르겠습니다.
NB. 미안합니다. 이것이 매우 기본 적이거나 이전에 물어 본 적이 있다면, 아직 파이썬에 익숙하지 않아서 무엇을 검색해야할지 모르겠습니다. 또한 코드 개선이 눈에 잘 띄는 경우 의견에 제게 알려주십시오!
클래스ZeroDict
는 사전을 확장하고 inexistent 키가 요청 될 때마다 0을 반환