2013-04-11 60 views
-1

我已经看到了很多这个问题,但我仍然无法看到我做错了什么。python,参数数目麻烦

我有几个滑块,我想要我正在移动的那个值,以及哪个滑块正在移动。

做到这一点:

def reading(self,value): 
    sender=self.sender() 
    slider=sender.objectName()[6:] 
    value_slider=value 

    return slider, value_slider 

,似乎工作,问题是下一个功能。现在 ,我想要做一些东西与滑块移动值:

def prsn(self,slider,value_slider): 
    wv=np.linspace(380,780,401) 
    leds=np.genfromtxt('led_psd.txt') 
    leds_norm=leds/leds.max() 
    Pot_ajust=0 
    for i in range(0,leds_norm.shape[1]): 
     Pot_ajust=Pot_ajust+value_slider*leds_norm[:,slider]; 

和我有错误:prsn()正是以3个参数(1给出)

为什么我不是“给”prsn()3的参数?它就像它不读取value_slider和滑块

我应该如何将value_slider和滑块传递给其他函数?

非常感谢你对任何提示

+6

请告诉我们你在哪里调用'prsn()'。 – cdhowie 2013-04-11 15:20:16

+0

我猜你正在调用这样的函数:'prsn()'。你的函数被定义为接受'slider,value_slider'参数。当调用'prsn(slider,value_slider)'时,传递'slider'和'value_slider' – That1Guy 2013-04-11 15:25:04

回答

0

这里是你应该怎么称呼prs​​n:

s = stuff 
vs = other_stuff 
thingy.prsn(s,vs) 

OR

thingy.prsn(slider=s,value_slider=vs) 

这意味着,在prsn的范围:

self = thingy 
slider = s 
value_slider = vs 

请现在当你问一个问题时,包括导致异常的代码行。