diff --git a/src/dict.cpp b/src/dict.cpp index 847d2182..f1b8df84 100644 --- a/src/dict.cpp +++ b/src/dict.cpp @@ -65,8 +65,8 @@ object dict_base::get(object_cref k) const { if (check_exact(this)) { - return object(detail::borrowed_reference( - PyDict_GetItem(this->ptr(),k.ptr()))); + PyObject* result = PyDict_GetItem(this->ptr(),k.ptr()); + return object(detail::borrowed_reference(result ? result : Py_None)); } else { diff --git a/test/dict.cpp b/test/dict.cpp index 538c7930..de6d4a86 100644 --- a/test/dict.cpp +++ b/test/dict.cpp @@ -61,6 +61,7 @@ void test_templates(object print) //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.has_key(key)); diff --git a/test/dict.py b/test/dict.py index fdabf2c9..c99d2e9b 100644 --- a/test/dict.py +++ b/test/dict.py @@ -20,6 +20,7 @@ >>> test_templates(printer) a test string 13 +None {1.5: 13, 1: 'a test string'} default 0