2014-03-06 64 views
1

Boost :: Python中是否有一個函數可以讓你獲得boost::python::object的哈希值,也就是Python的hash函數的等效函數?我一直在閱讀文檔,但似乎沒有提及任何內容。Boost Python Hash

+0

也許是相關的:http://stackoverflow.com/a/15180520/85371 – sehe

回答

2

hash在python中實現了與事物C端的PyObject_Hash。如果你有一個隨機對象obj,你可以簡單地調用:

long hash = PyObject_Hash(obj.ptr()) 

ptr()方法在boost::python::object返回PyObject *,有一個借用的引用到該對象。

一般來說,CPython API中有很多東西沒有被boost :: python包裝。直接調用它很容易。

+0

我已經使用了C API,但我希望我不必經過那些水域......哦。 – refi64

+0

這真的不是那麼糟糕。像這樣的情況幾乎沒有什麼壞處。 –