Например, dict.pop() выдаст ошибку KeyError, если ключ не существует. .pop() также принимает аргумент для возвращаемого значения по умолчанию. В этом примере мы могли бы установить возврат по умолчанию None, поэтому: some_dict.pop(some_key, None)
Если бы вы определили pop в Python, вы бы, вероятно, сделали:
Код: Выделить всё
def pop(some_key, default=None):Код: Выделить всё
PyObject *
_PyDict_Pop(PyObject *dict, PyObject *key, PyObject *deflt)
{
Py_hash_t hash;
if (((PyDictObject *)dict)->ma_used == 0) {
if (deflt) {
Py_INCREF(deflt);
return deflt;
}
_PyErr_SetKeyError(key);
return NULL;
}
if (!PyUnicode_CheckExact(key) ||
(hash = ((PyASCIIObject *) key)->hash) == -1) {
hash = PyObject_Hash(key);
if (hash == -1)
return NULL;
}
return _PyDict_Pop_KnownHash(dict, key, hash, deflt);
}
Подробнее здесь: https://stackoverflow.com/questions/591 ... l-argument
Мобильная версия