dict.cpp
来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 92 行
CPP
92 行
// Copyright David Abrahams 2004. Distributed under the Boost// Software License, Version 1.0. (See accompanying// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)#include <boost/python/module.hpp>#define BOOST_ENABLE_ASSERT_HANDLER#include <boost/assert.hpp>#include <boost/python/def.hpp>#include <boost/python/class.hpp>#include <boost/python/dict.hpp>#include <exception>#include <string>using namespace boost::python;object new_dict(){ return dict();}object data_dict(){ dict tmp1; tmp1["key1"] = "value1"; dict tmp2; tmp2["key2"] = "value2"; tmp1[1] = tmp2; return tmp1;}object dict_from_sequence(object sequence){ return dict(sequence);}object dict_keys(dict data){ return data.keys();}object dict_values(dict data){ return data.values();}object dict_items(dict data){ return data.items();}void work_with_dict(dict data1, dict data2){ if (!data1.has_key("k1")) { throw std::runtime_error("dict does not have key 'k1'"); } data1.update(data2);}void test_templates(object print){ std::string key = "key"; dict tmp; tmp[1] = "a test string"; print(tmp.get(1)); //print(tmp[1]); tmp[1.5] = 13; print(tmp.get(1.5)); print(tmp.get(44)); print(tmp); print(tmp.get(2,"default")); print(tmp.setdefault(3,"default")); BOOST_ASSERT(!tmp.has_key(key)); //print(tmp[3]);} BOOST_PYTHON_MODULE(dict_ext){ def("new_dict", new_dict); def("data_dict", data_dict); def("dict_keys", dict_keys); def("dict_values", dict_values); def("dict_items", dict_items); def("dict_from_sequence", dict_from_sequence); def("work_with_dict", work_with_dict); def("test_templates", test_templates);}#include "module_tail.cpp"
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?