Jon*_*han 5 c++ python swig timestamp quickfix
我猜这是一个python vs SWIG问题比什么都重要...
我正在使用带有SWIG Python绑定的C++包.我收到的一个对象是UTC时间戳,我正试图从中提取时间戳.
该对象具有以下特征:
>>> print type(obj)
<type 'SwigPyObject'>
>>> print dir(obj)
['__class__', '__cmp__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__hex__', '__init__', '__int__', '__le__', '__long__', '__lt__', '__ne__', '__new__', '__oct__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'acquire', 'append', 'disown', 'next', 'own']
>>> print obj
<Swig Object of type 'UtcTimeStamp *' at 0x0379F320>
Run Code Online (Sandbox Code Playgroud)
如何从中提取数据?
更新:
我发现UTCTimeStamp类是从DateTime结构派生的- 它是开源QuickFix包的一部分.
但是我仍然不知道如何访问数据.DateTime具有简单的getter函数,例如getYear() - 但是,如何访问它们?
你试过了吗obj.getYear()?UTCTimeStamp从派生的文档中可以看出DateTime,因此您应该能够访问父类的方法。
如果这不起作用,那么如果你这样做了,你会得到什么样的对象newobj = obj.next()?你试过了吗print obj.__doc__?
编辑:来自http://www.swig.org/Doc1.3/Python.html#Python_nn27a:
该指针值可以自由地传递给期望接收类型对象的不同 C 函数...您唯一不能做的就是从 Python 取消引用该指针。
因此,您需要将其传递给 C++ 函数的包装器,该函数可以采用DateTime. 我不知道具体是什么,因为我不知道你在包装什么。
在本例中,即http://www.quickfixengine.org/quickfix/doc/html/struct_f_i_x_1_1_utc_time_stamp_convertor.html。我相信,虽然我无法测试这一点,但您可以这样称呼它:
import quickfix
converter = quickfix.UtcTimeStampConverter()
string = converter.convert(obj)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
934 次 |
| 最近记录: |