python boost學習筆記8,過載函式

2021-10-05 07:31:22 字數 1657 閱讀 2683

這裡學習了

過載使用類似於函式指標的概念,讓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...