2016-07-26 78 views
0

我正在使用Kivy和Python在Linux中編寫GUI。程序應檢測USB設備並使用設備將圖像編程到目標。這裏是我的代碼片段:kivy .bind結果爲AssertionError:''不可調用

這些是我試圖檢測USB設備的代碼。這是一個文件,我們稱之爲A.py.

busses = usb.busses() 

    for bus in busses: 
     devices = bus.devices 
     for dev in devices: 
      if (dev.idVendor == vendor and dev.idProduct == product): 
        obj = ProgJTAG.ProgJTAG(bus.dirname,dev.filename, dev.idVendor, dev.idProduct, dev) 

        break 

當我運行程序時,在創建ProgJTAG實例時發生斷言錯誤。這是在一個單獨的文件ProgJTAG.py定義如下:

class ProgJTAG(BoxLayout): 
    usb_bus = StringProperty('') 
    usb_dev = StringProperty('') 
    usb_vendor = StringProperty('') 
    usb_product = StringProperty('') 

    def __init__(self, _usb_bus, _usb_dev, _usb_vendor, _usb_product, dev): 
      super(ProgJTAG, self).__init__() 

      self.usb_bus = _usb_bus 
      self.usb_dev = _usb_dev 
      self.usb_vendor = str(_usb_vendor) 
      self.usb_product = str(_usb_product) 
      self.bind(usb_bus=self.usb_bus) 
      self.bind(usb_dev=self.usb_bus) 
      self.bind(usb_vendor=self.usb_bus) 
      self.bind(usb_product=self.usb_bus) 

誤差從線self.bind發生(usb_bus = self.usb_bus)。該錯誤消息是文件 「_event.pyx」,kivy._event.EventDispatcher.bind(kivy/_event.c:5536) AssertionError的: '' 不是可調用

Q1。任何人都可以幫助斷言的含義嗎?

Q2。我注意到_usb_bus_usb_dev是空字符串。這種斷言是由於這樣一個事實造成的:_usb_bus_usb_dev是空的字符串屬性,因此不可調用?

回答

0

是的,當你綁定你必須傳遞一個函數,因爲綁定將嘗試稍後調用它。

相關問題