boost/python/dict.hpp

はじめに

Python の dict 型に対する TypeWrapper をエクスポートする。

クラス

dict クラス

class dict : public object

Python の組み込み dict 型のマップ型プロトコルをエクスポートする。以下に定義するコンストラクタとメンバ関数のセマンティクスを完全に理解するには、TypeWrapper コンセプトの定義を読むことである。dictobject から公開派生しているので、object の公開インターフェイスは dict のインスタンスにも当てはまる。

dict クラスの概要

namespace boost { namespace python
{
   class dict : public object
   {
      dict();

      template< class T >
      dict(T const & data);

      // 変更
      void clear();
      dict copy();

      template <class T1, class T2>
      tuple popitem();

      template <class T>
      object setdefault(T const &k);

      template <class T1, class T2>
      object setdefault(T1 const & k, T2 const & d);

      void update(object_cref E);

      template< class T >
      void update(T const & E);

      // オブザーバ
      list values() const;

      object get(object_cref k) const;

      template<class T>
      object get(T const & k) const;

      object get(object_cref k, object_cref d) const;
      object get(T1 const & k, T2 const & d) const;

      bool has_key(object_cref k) const;

      template< class T >
      bool has_key(T const & k) const;

      list items() const;
      object iteritems() const;
      object iterkeys() const;
      object itervalues() const;
      list keys() const;
  };
}}

using namespace boost::python;
dict swap_object_dict(object target, dict d)
{
    dict result = extract<dict>(target.attr("__dict__"));
    target.attr("__dict__") = d;
    return result;
}