Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32.1k
Closed
Description
Feature or enhancement
PyObject_HasAttrString
is implemented in terms ofPyObject_GetAttrString
/PyErr_Clear
.
for non-existing attributes, there's significant overhead from creating an error only to clear it later.
this can be optimized by implementing it in terms ofPyObject_HasAttr
.
microbenchmark
python -m pyperf timeit -s 'import _testcapihasattr_string = _testcapi.hasattr_stringclass A: def __init__(self): self.attr = 1a = A()' 'hasattr_string(a, "noattr")'.....................Mean +- std dev: 487 ns +- 7 ns