在我的項目中,我使用module from known bt_manager來解碼sbc音頻流。這個模塊是來自rtpsbc庫的C函數的python包裝。python:類實例無法看到自我屬性
class SBCCodec:
def __init__(self, config):
import sys
try:
self.codec = ffi.verify(b'#include "rtpsbc.h"',
libraries=[b'rtpsbc'],
ext_package=b'rtpsbc')
except:
print 'Exception:', sys.exc_info()[0]
self.config = ffi.new('sbc_t *')
self.ts = ffi.new('unsigned int *', 0)
self.seq_num = ffi.new('unsigned int *', 0)
self._init_sbc_config(config)
self.codec.sbc_init(self.config, 0)
當我嘗試創建SBCCodec類的實例它給了我:
AttributeError: SBCCodec instance has no attribute 'codec'
你可以在一段代碼我上面貼看到這個屬性。它與ffi-methods(ffi.verify,ffi.new)一起工作。當我在ipython中輸入這些命令時,所有工作都正確無誤。
我錯過了什麼?
那是因爲你可能正在碰到你的'except'子句?並導致'self.codec'永遠不會被設置。你有其他的錯誤信息嗎? – Torxed
當你運行這個程序時,你看到打印的異常嗎? – siphr
是的......它的例外:' –