gh-103193: Use LBYL idioms rather than EAFP in inspect.getattr_static by AlexWaygood · Pull Request #103318 · python/cpython (original) (raw)

Yeah, I tried out doing this instead (diff is relative to my current patch, not to main), and it's slower than what I currently have:

diff --git a/Lib/inspect.py b/Lib/inspect.py index a317f0ca74..7fcaa13750 100644 --- a/Lib/inspect.py +++ b/Lib/inspect.py @@ -1787,8 +1787,10 @@ def _check_instance(obj, attr):

def _check_class(klass, attr): for entry in _static_getmro(klass):

def _is_type(obj): @@ -1800,13 +1802,13 @@ def _is_type(obj):

def _shadowed_dict(klass): for entry in _static_getmro(klass):

def getattr_static(obj, attr, default=_sentinel): @@ -1845,11 +1847,10 @@ def getattr_static(obj, attr, default=_sentinel): if obj is klass: # for types we check the metaclass too for entry in _static_getmro(type(klass)):

@carljm is that the kind of thing you were talking about? :)