在我的项目中,我使用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
是的......它的例外:' –