這裡學習了
過載使用類似於函式指標的概念,讓python在呼叫的時候知道應該呼叫哪乙個函式
void (example::*d1)() = &example::doit;
std::string (example::*d2)(unsigned int) = &example::doit;
void (example::*d3)(std::string) = &example::doit
生成3個函式表示 d1 d2 d3分別表示對應的過載函式
boost_python_member_function_overloads(fun_,fun,m,n)
def(「fun_name」, fun, fun_())
n:表示最少幾個引數
m:表示最多幾個引數
實列在c++**中
#include
#include
class
example
void
doit()
std::string doit
(unsigned
int i)
void
doit
(std::string s)
intmakeit
(std::string s,
int n=
1, std::string t="")
std::string print()
const
//會被python 的print函式 預設呼叫
private
: std::string ms;};
#include
using
namespace boost::python;
//乙個模板,將makeit 封裝成過載函式,1,3表示最少1個引數,最多3個引數
boost_python_member_function_overloads
(makeit_overloads, makeit,1,
3)boost_python_module
(boost_eg)
python **:
#!/usr/bin/env python
from boost_eg import example
e = example(
)e.doit();
print
(e)print
(e.doit(2)
)e.doit(
"hallo");
print
(e)print
("------"
)print
(e.makeit(
"***"
), e)
print
(e.makeit(
"abc",2
), e)
print
(e.makeit(
"xyz",3
,"abc"
), e)
執行結果:
void
2hallo
-----
-1 ***
2 abcabc
4 xyzxyzxyzabc
python boost相關配置
1 首先python 是需要是 enable unicode ucs4編譯的 2 boost 編譯的時候 相關python的編譯變數填清楚了 如 bootstrap.sh with icu with python usr local python bin python with python roo...
學習筆記 雜湊學習筆記
hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...
學習筆記 CentOS 學習筆記01
簡單的做個課堂筆記 虛擬機器用的是vmware,系統是centos cd etc sysconfig network scripts pwdls 顯示列表 cat ifcfg eth0 檢視檔案內容 vi ifcfg eth0 進入vi編輯器 onboot no 原始設定 x逐字刪除 d刪除整行 a...